我正在使用带有jQuery的ASP.NET MVC。我有以下MVC操作,返回成功页面的一部分。关于“应用程序错误”,我不确定要在客户端正确处理它的方式发送什么:
public ActionResult LoadFilterSet(int filterSetId) { try { BreadCrumbManager bcManager = this.ResetBreadCrumbManager(this.BreadCrumbManagerID); GeneralHelper.LoadBreadCrumbManager(bcManager, filterSetId); ViewData["BreadCrumbManager"] = bcManager; return View("LoadFilterSet"); } catch (Exception ex) { return Content(""); } }
以下是我的jQuery ajax调用。请注意,我正在检查数据长度以确保没有错误。请建议我这样做的更好方法。
$.ajax({ type: "GET", dataType: "html", async: true, data: ({ filterSetId: selectedId }), url: link, contentType: "text/html; charset=utf-8", success: function(data, textStatus) { if (data.length > 0) { // Clear the local filters first. clearLocalFilters(); $('td.selected-filters table.filters-display').append(data); } } });
我会在您的ajax调用设置中添加一个错误函数。让服务器确定要显示的错误消息,然后将其传递给ajax错误处理程序并使其显示。
success: function(data, textStatus) { // Clear the local filters first. clearLocalFilters(); $('td.selected-filters table.filters-display').append(data); }, error: function (data) { alert(data.responseText); // use any display logic here }
在控制器的操作中,如果发现错误
Response.StatusCode = (int)HttpStatusCode.BadRequest; return Content(errorMessage, MediaTypeNames.Text.Plain);