我已經使用DataAnnotations(必需,stringlength等)在我的MVC 3應用程序中設置了實體,MVC頁面正確顯示了驗證錯誤消息。但是,只要在用戶有機會輸入無效值之前頁面加載新窗體時就會顯示錯誤消息。MVC 3驗證 - 僅在失去焦點或提交後才顯示錯誤消息?
我幾年前曾經使用JQuery驗證,並且只能在用戶失去焦點或嘗試提交表單之後顯示錯誤消息。事實上,我認爲這是默認行爲。
有沒有辦法在MVC 3中使用DataAnnotations來做同樣的事情?
編輯:下面是HTML
<div class="form horizontal floated w50p">
<h3>Billing Information</h3>
@using(Html.BeginForm()){
<div class="item">
<div class="label">
<label>* First Name</label></div>
<div class="value">@Html.TextBoxFor(x => x.Name)</div>
<div class="value">@Html.ValidationMessageFor(x => x.Name)</div>
</div>
<div class="item">
<div class="label">
<label>* Address 1</label></div>
<div class="value">@Html.TextBoxFor(x => x.Street1)</div>
<div class="value">@Html.ValidationMessageFor(x => x.Street1)</div>
</div>
<div class="item">
<div class="label">
<label>Address 2</label></div>
<div class="value">@Html.TextBoxFor(x => x.Street2)</div>
</div>
<div class="item">
<div class="label">
<label>Address 3</label></div>
<div class="value">@Html.TextBoxFor(x => x.Street3)</div>
</div>
<div class="item">
<div class="label">
<label>City</label></div>
<div class="value">@Html.TextBoxFor(x => x.City)</div>
<div class="value">@Html.ValidationMessageFor(x => x.City)</div>
</div>
<div class="item">
<div class="label">
<label>State/Province/Region</label></div>
<div class="value">@Html.TextBoxFor(x => x.StateProv)</div>
<div class="value">@Html.ValidationMessageFor(x => x.StateProv)</div>
</div>
<div class="item">
<div class="label">
<label>Zip/Postal Code</label></div>
<div class="value">@Html.TextBoxFor(x => x.PostalCode)</div>
<div class="value">@Html.ValidationMessageFor(x => x.PostalCode)</div>
</div>
<div class="item">
<div class="label">
<label>* Contact Phone</label></div>
<div class="value">@Html.TextBoxFor(x => x.ContactPhone)</div>
<div class="value">@Html.ValidationMessageFor(x => x.ContactPhone)</div>
</div> <input type="submit" value="Submit" />
}
我目前對gets和posts使用相同的動作。你能否舉一個驗證者如何混淆的例子? – chief7 2011-05-19 01:57:47
我在頁面第一次加載時檢查了兩次,RequestType是控制器操作中的「GET」。然後在表單有效並提交時發送「POST」。 – chief7 2011-05-19 10:14:02
不知道什麼改變,但現在工作。 – chief7 2011-05-27 13:02:44