該文章特定於使用MicrosoftAjax的MVC 2。 MVC 4不再包含MS Ajax文件,因爲它們已被棄用,首選的方法是使用jQuery。
要驗證設置,確保這些腳本是在你的佈局
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
而這兩個設置存在於appSettings部分在web.config文件
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
所以,當你添加數據註釋到您的ViewModels您可以獲得客戶端和服務器端驗證兩者
public class MyModel
{
[Required]
[StringLength(30)]
public string FirstName { get; set; }
[Required]
[StringLength(30)]
public string LastName { get; set; }
}
在你看來只是確保你有一個像這樣
<div>
@Html.LabelFor(model => model.FirstName)
</div>
<div>
@Html.TextBoxFor(model => model.FirstName) <br/>
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div>
@Html.LabelFor(model => model.LastName)
</div>
<div>
@Html.TextBoxFor(model => model.LastName) <br/>
@Html.ValidationMessageFor(model => model.LastName)
</div>
更新
下面的代碼是,我已經叫RateRequiredIfCustomIndexRate 一個自定義驗證的例子這是它的JavaScript端,使其被添加到jquery驗證
$("document").ready(function() {
var isCustomRateRequired = document.getElementById("IsCustomRateRequired");
isCustomRateRequired.onchange = function() {
if (this.checked) {
$('#Rate').attr('disabled', 'disabled');
$('#Rate').val('');
}
else {
$('#Rate').removeAttr('disabled');
}
};
});
jQuery.validator.addMethod("raterequiredifcustomindexrate", function (value, element, param) {
var rateRequired = $("#CustomRateRequired").val();
if (rateRequired && value == "") {
return false;
}
return true;
});
jQuery.validator.unobtrusive.adapters.addBool("raterequiredifcustomindexrate");
谷歌「MVC 3自定義驗證」,你會發現像http://msdn.microsoft.com/en-us/vs2010trainingcourse_aspnetmvccustomvalidation_topic3和http://tdryan.blogspot.com/2010/12/aspnet- mvc-3-custom-validation.html – RickAndMSFT
@RickAndMSFT:當你在沒有閱讀的問題上盲目地發佈鏈接時,會發生這種情況。 http://msdn.microsoft.com/en-us/vs2010trainingcourse_aspnetmvccustomvalidation_topic3不是關於Jquery驗證。它使用MicrosoftMvcValidation.js進行客戶端驗證,我不需要,因爲我明確提出了問題,並且http://tdryan.blogspot.in/2010/12/aspnet-mvc-3-custom-validation.html使用內置RegularExpressionAttribute自動生成客戶端腳本。我沒有使用RegularExpressionAttribute。根據你的鏈接,我最好不要谷歌:D –
閱讀任何我的教程下面的迴應。爲MVC 4更新它們並不難。概念是相同的。 – RickAndMSFT