ユーザーが前のページで入力した情報を表示するレビュー ページがあります。通常、フォームが送信されるとMCVが検証エラーを表示することを知っています。ページが最初に表示されたときに検証メッセージが表示されるようにします。どうすればいいですか?
質問する
2243 次
1 に答える
2
ページの読み込み時にいくつかの検証エラーをスローしたい場合は、そのようなことができます
public ActionResult MyReadOnlyPage(MyModel model)
{
/* do your logic with the model */
ModelState.AddModelError("ModelPropertyName1", "My property error 1");
ModelState.AddModelError("ModelPropertyName2", "My property error 2");
return View(model);
}
その後、ValidationErrorFor または ValidationSummary がある場合は、エラー メッセージが期待どおりに表示されるはずです。代わりに、プロパティにリンクされていないエラーが必要な場合 (そのため、概要にのみ表示されます) を使用します
ModelState.AddModelError("", "generic error");
アップデート
私が行ったテストはこれでした(テンプレートから新しいMVCアプリケーションを作成しました):
モデル
public class MyViewModel
{
public string name { get; set; }
public string surname { get; set; }
}
コントローラー
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
var model = new MyViewModel();
ModelState.AddModelError("name", "errror 1");
return View(model);
}
html
@model MvcApplication1.Models.MyViewModel
@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
@Html.ValidationSummary(false)
@Html.ValidationMessageFor(model => model.name)
@Html.ValidationMessageFor(model => model.surname)
</p>
そしてそれは私のために働いた。それが役に立てば幸い
于 2012-08-13T16:17:06.190 に答える