我正在尝试使用异步控制器,但无法弄清楚如何验证用户输入。
以下是我的控制器中定义的两个异步方法。我应该在 SearchAsync 方法或 SearchCompleted 方法中检查 ModelState.IsValid。如果 SearchAsync 那么将如何返回视图结果,因为它的返回类型是 void。如果 SearchCompleted 那么该方法将如何知道 searchForm 参数。
[HttpPost]
[ValidateAntiForgeryToken]
public void SearchAsync(BusinessSearchForm searchForm)
{
AsyncManager.OutstandingOperations.Increment();
new Thread(() =>
{
var suggestions = _searchSvc.GetSuggestions(searchForm.BusinessName, searchForm.StreetAddress, searchForm.City, searchForm.PostalCode);
AsyncManager.Parameters["suggestions"] = suggestions;
AsyncManager.OutstandingOperations.Decrement();
}).Start();
}
public ActionResult SearchCompleted(IEnumerable<BusinessSuggestionBase> suggestions)
{
return View(suggestions);
}