C# 非英语十进制输入的Jquery验证问题
我试图验证“Double”类型的用户输入,但我有非常奇怪的行为 模型 看法 我不知道我做错了什么?C# 非英语十进制输入的Jquery验证问题,c#,asp.net-mvc,unobtrusive-validation,C#,Asp.net Mvc,Unobtrusive Validation,我试图验证“Double”类型的用户输入,但我有非常奇怪的行为 模型 看法 我不知道我做错了什么? @节脚本{ @Scripts.Render(“~/bundles/jqueryval”) $(function(){//将在文档准备就绪时触发 $('.datepicker').datepicker({ 格式:“日/月/年”, 今日BTN:“链接”, 自动关闭:是的, 今天的亮点:真的 });//初始化任何日期选择器 }); $.extend($.validator.methods{ 日期:函数
@节脚本{
@Scripts.Render(“~/bundles/jqueryval”)
$(function(){//将在文档准备就绪时触发
$('.datepicker').datepicker({
格式:“日/月/年”,
今日BTN:“链接”,
自动关闭:是的,
今天的亮点:真的
});//初始化任何日期选择器
});
$.extend($.validator.methods{
日期:函数(值、元素){
返回此.optional(元素)\\\/^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test(值);
}
});
jqueryval是验证bunles您声称的没有任何意义(如果您在web.config文件中设置了区域性,则不需要自定义ModelBinder)。你的POST方法中的代码是什么。我理解,我不知道我做错了什么,例如:当我看到源页面时,我看到中的所有错误消息都是用法语编写的,但在显示屏上我看到了英语错误消息。那么,我如何在POST方法中获取代码?我的意思是显示你的控制器方法的代码-你的
[HttpPost]public ActionResult….
Method它没有到达ActionResult,因为它是聚合的客户端验证
public class User
{
public double CodeA { get; set; }
public double CodeB { get; set; }
}
<div class="row">
<div class="form-group">
<div class="col-md-1">
<label class="control-label">CodeA</label>
</div>
<div class="col-md-2">
@Html.TextBoxFor(model => model.CodeA, new { @class = "form-control input-sm cus-read" })
</div>
<div class="col-md-3">
@Html.ValidationMessageFor(model => model.CodeA)
</div>
<div class="col-md-1">
<label class="control-label">CodeB</label>
</div>
<div class="col-md-2">
@Html.TextBoxFor(model => model.CodeB, new { @class = "form-control input-sm cus-read" })
</div>
<div class="col-md-3">
@Html.ValidationMessageFor(model => model.CodeB)
</div>
</div>
</div>
<system.web>
<globalization
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="fr-BE"
uiCulture="fr-BE"
/>
</system.web>
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
ValueProviderResult valueResult = bindingContext.ValueProvider
.GetValue(bindingContext.ModelName);
ModelState modelState = new ModelState { Value = valueResult };
object actualValue = null;
try
{
actualValue = Convert.ToDouble(valueResult.AttemptedValue,
CultureInfo.CurrentCulture);
}
catch (FormatException e)
{
modelState.Errors.Add(e);
}
bindingContext.ModelState.Add(bindingContext.ModelName, modelState);
return actualValue;
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
$(function() { // will trigger when the document is ready
$('.datepicker').datepicker({
format: "dd/mm/yy",
todayBtn: "linked",
autoclose: true,
todayHighlight: true
}); //Initialise any date pickers
});
$.extend($.validator.methods, {
date: function (value, element) {
return this.optional(element) || /^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test(value);
}
});
</script>