次の構文を持つ標準の Ajax フォームがあるとします。
@using(Ajax.BeginForm("AddCityJson", "City",new AjaxOptions
{
HttpMethod = "post",
OnSuccess = "JScriptOnSuccess();",
OnFailure = "JScriptOnFailure"
}))
{
...form fields go here...
}
都市に関する情報を収集し、送信して保存する単純なフォーム。
コントローラー側で情報を受け取ります。すべてがうまくいった場合は、OnSuccess AjaxOption をトリガーするために true を返し、失敗した場合は false を返します。
public JsonResult AddCityJson(Formcollection collection)
{
var city = new City
{
...populate city fields from passed in collection
}
var cityRepository = new CityRepository;
city = cityRepository.SaveOrEdit(city);
if(city==null)
{return Json(false)}
return Json(true);
}
コントローラーの AddCityJson メソッド内で、さまざまなチェックを追加する必要があります。おそらく、都市名が既に存在するかどうか、またはその他の検証を確認し、エラーまたは警告が発生した場合は UI に戻します。
Ajax フォームが ajax true または false を返すことを期待し、その投稿が成功したかどうかを期待している場合、エラー/警告メッセージを UI に渡すにはどうすればよいですか?
ViewData、ViewBags の使用は避けたいと思います。ありがとうございました。