gpt4 book ai didi

.net - 自定义注释 Asp.Net MVC 4 的客户端验证

转载 作者:行者123 更新时间:2023-12-04 13:04:25 26 4
gpt4 key购买 nike

我指的是这篇文章:

http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx

它展示了如何在 Asp.Net MVC 2 中创建自定义注释。但是,客户端验证脚本,尤其是“MicrosoftMvcJQueryValidation”在 Asp.Net MVC4 中不可用。我在一篇文章中读到它,它是 Asp.Net Futures 项目的一部分。我想使用 Jquery 连接我的客户端验证。在我的项目模板脚本文件夹中,我看到名为的脚本:

jquery.validate.min.js
jquery.validate.unobtrusive.min.js
jquery.unobtrusive-ajax.min.js

有什么办法可以利用这些现有的脚本吗?还是我必须强制下载 future 项目?

最佳答案

那篇文章专门针对使用 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>

这两个设置存在于 web.config 文件的 appSettings 部分
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>

因此,当您向 ViewModel 添加数据注释时,您将同时获得客户端和服务器端验证
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");

关于.net - 自定义注释 Asp.Net MVC 4 的客户端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10666045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com