非同期コントローラーを使用しようとしていますが、ユーザー入力を検証する方法がわかりません。
以下は、私のコントローラーで定義された 2 つの非同期メソッドです。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);
}