ASP.Net MVCの検証メッセージで把握しようとしています。私はその後、姓のフィールドが空白の場合、エラーメッセージを表示するようになっている私のコントローラで、このPOSTメソッドを持ってASP.Net MVCと検証メッセージ
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<h2>Create User</h2>
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<p>
Username : <%= Html.TextBox("Username") %>
</p>
<p>
Forename : <%= Html.TextBox("Forename") %>
<%= Html.ValidationMessage("Forename", "*") %>
</p>
<p>
Surname : <%= Html.TextBox("Surname","") %>
<%= Html.ValidationMessage("Surname", "*") %>
</p>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%=Html.ActionLink("Back to List", "Index") %>
</div>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">
<title><%= ViewData["ProjectTitle"] %> - Create User</title>
</asp:Content>
次のビューを持って、私はちょうどしようと、この機能イムには、他のロジックはありません実現します私の頭の中で検証する。私はこれを実行すると、インクルードメソッドが正常に実行され、エラーが追加されますが、そのアプリケーションが転倒作成、ユーザーを保存するためにクリックすると
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection formValues)
{
if (formValues["Surname"] == string.Empty)
ViewData.ModelState.AddModelError("Surname", "No way");
return View("Create");
}
は、それは姓のテキストボックスを作成し、「未言うビュー内の行をhightlightsオブジェクトのインスタンスに設定します。私は姓のテキストボックスに何かを入れて、エラーが追加されない場合、それは正常に実行されます。
私は本当にシンプルなものを見逃していると思っていますが、何ができるのでしょうか。
アイデア?
おかげで
ギャビン
にNULLまたは空のためにテストする必要がありますか? –
それはこの行で起こります姓:<%= Html.TextBox( "Surname"、 "")%> – Gavin
うーん、私は2番目の引数のためだと思います。 ViewDataでキー(空)が検索され、オブジェクト参照がスローされます。 –