[英]MVC3 Client side validation not working
我正在使用帶Razor的MVC3。
我在_Layout.cshtml中包含以下內容:
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
我的表格如下:
@{
ViewBag.Title = "Register";
Html.EnableClientValidation();
}
@using (Html.BeginForm("Register"))
{
<fieldset>
<p>
@Html.LabelFor(o => o.Email)
@Html.TextBoxFor(o => o.Email)
@Html.ValidationMessageFor(o => o.Email)
</p>
...
</fieldset>
}
我的ViewModel具有DataAnnotations(並實現IValidatableObject),並在控制器操作期間進行驗證。 但是,如果不發布表單,我似乎無法在客戶端使用JS驗證。
我錯過了什么?
在ASP.NET MVC 3中,jquery驗證插件是執行客戶端驗證的默認設置。 因此,您可以從項目中刪除所有Microsoft*.js
腳本。 您只需要以下內容:
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
並刪除Html.EnableClientValidation();
呼叫。 在web.config中啟用了客戶端驗證:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
刪除Html.EnableClientValidation(); 並轉到您的網絡配置,並確保您有一個如下所示的appSetting:
<add key="ClientValidationEnabled" value="true"/>
嘗試在視圖中添加以下行。
HtmlHelper.ClientValidationEnabled = true;
HtmlHelper.UnobtrusiveJavaScriptEnabled = true;
包括jquery-1.4.4.js,jquery.validate.js,jquery.validate.unobtrusive.js
我得到它為我的應用程序工作,但它似乎沒有開始,直到我輸入一個壞的值。 例如
[Required(ErrorMessageResourceType = typeof(Resources.WValidation), ErrorMessageResourceName = "TestCountRequired")]
[Range(1, Int32.MaxValue, ErrorMessageResourceType = typeof(Resources.WValidation), ErrorMessageResourceName = "TestCountRange")]
public int? TestCountThreshold { get; set; }
然后我在前端輸入0,之后客戶端驗證工作完美無瑕。 我想驗證是否適用於初始空白文本框...驗證似乎不正確,等待嘗試的錯誤值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.