【发布时间】:2014-08-04 19:20:18
【问题描述】:
在 MVC 操作方法中给出以下代码:
public async Task<PartialViewResult> PatientFilterAll(PatientFilterQuery patientFilterQuery)
{
int count = await Task.Run(() => _patientService.GetAllPatientsCount(patientFilterQuery));
IList<PatientDTO> patients = await Task.Run(() => GetPatientList(patientFilterQuery));
Cookie.Set("RecordCount", Convert.ToString(count));
return PartialView("List", patients);
}
PatientFilterQuery 是一组带有搜索条件的下拉框。首先为客户端分页请求总计数,然后是搜索条件。
如果在发出请求后更改下拉菜单,则会生成对 Action 方法的新请求。结果有时是原始请求得到满足,几秒钟后第二个请求得到响应。
如何停止第一个请求而只返回第二个请求?
【问题讨论】:
-
您无法在服务器上控制它。真正的问题听起来是为什么会有两个客户端请求?为什么第一个客户端请求没有中止(jQuery?)?
-
你不能忍受第二个请求覆盖第一个请求返回的内容吗?
-
第一个请求在页面加载中并且包含默认条件。有时用户会在下拉菜单中进行选择以进行更窄的搜索。
-
效果是默认搜索显示在列表中,稍后再更改。如果我可以停止第一个返回的列表,那就更好了。此外,搜索运行时间很长,因此用户认为第一个结果是正确的,然后在五到八秒后看到它发生变化。
-
你是如何从客户端触发的?
标签: c# asp.net-mvc asynchronous