我正在使用ASP.NET MVC 4.我在模型中使用数据注释进行验证。
有一个字段名称Mobile,并使用如下的正则表达式进行验证。
[RegularExpression(@"[0-9]{10}", ErrorMessage = "Mobile Number is Not Valid")]
public string Mobile { get; set; }
根据上述申请要求,字段不是强制性的,但如果用户插入,则需要验证手机号码。
我的问题是,当我提交表单时,它会显示“需要移动字段”。但移动字段未使用[Required]
属性进行装饰。那么它如何显示所需?
可能是什么原因? 怎么解决?
答案 0 :(得分:0)
在您的项目中,有一个文件夹“views”,您可以使用所需的控件创建视图。 应该有类似的东西:
@Html.LabelFor(m => m.Mobile)<br />
@Html.TextBoxFor(m => m.Mobile)<br />
为了使regularExpression正常工作。 如果你已经这样做,另一个问题可能是你的模型。 在视图的顶部,您应该通过以下方式添加模型:
@model yourModelName
答案 1 :(得分:0)
由于您未在控制器中发布任何代码,因此Index
被视为控制器的操作,MyModel
被视为模型。
在控制器中尝试以下代码:
public ActionResult Index(MyModel model)
{
//This will check if `Mobile` is empty and remove the Mobile from validation if the field is empty
if (collection.Get("Mobile") == "") //Mobile is the name of the Mobile number field in view
{
ModelState.Remove("Mobile");
}
if(ModelState.IsValid){
//do something
}
else{
return View(model);
}
}
希望有所帮助
答案 2 :(得分:0)
您可以使用以下简单的jQuery轻松完成..
//Remove Required field validation on pin and mobile number
$(document).ready(function () {
$("#Mobile").removeAttr("data-val");
});
请试着让我们知道这是否适合你。
由于