1

ユーザーが前のページで入力した情報を表示するレビュー ページがあります。通常、フォームが送信されるとMCVが検証エラーを表示することを知っています。ページが最初に表示されたときに検証メッセージが表示されるようにします。どうすればいいですか?

4

1 に答える 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 に答える