我正在编写一个 MVC3 应用程序,在其中一个页面上,我带回了一个项目列表,这些项目列表显示在带有分页和排序的表格中。
但是,如果回购的记录超过一定数量,我想发布一条消息,告诉用户进一步细化他们的搜索。
Response.StatusCode
如果满足上述条件,我已经通过更改控制器中的 来实现这一点;
public PartialViewResult VerbatimGridUpdate(VerbatimFormModel model)
{
if (ModelState.IsValid)
{
var mod = ModelBuilder.GetVerbatimFormModel(model);
if (mod.Verbatims.Count() > 10000)
{
HttpContext.Response.StatusCode = 33;
}
return PartialView("_VerbatimGrid", mod);
}
else
{
return PartialView(model.Verbatims);
}
}
在我的标记中,我使用 Ajax 表单的 OnFailure 事件捕获了这个失败;
function FailureLoading(ajaxContext) {
if (ajaxContext.status == "33") {
var ul = $("#validationSummary ul");
$("ul").empty();
ul.append("<li>" + "Too many records returned, please refine your search." + "</li>");
}
}
</script>
<div class="filters" >
@using (Ajax.BeginForm("VerbatimGridUpdate", null, new AjaxOptions { HttpMethod= "Get", UpdateTargetId = "grid-container", OnBegin = "StartLoading", OnSuccess = "FinishLoading", OnFailure="FailureLoading"}, new { id = "VerbatimListForm", name="VerbatimListForm" }))
{
在本地一切正常,但是一旦我部署到我们的 UAT 服务器,就不会触发失败事件并显示所有记录。我无法弄清楚为什么我会在行为上出现这种差异。任何想法都将受到欢迎。谢谢你。