我有@Html.ValidationMessageFor的@ Html.TextBoxFor控件,它不是必填字段,但是最大长度有一个限制,也只允许数字。我在ViewModel中给出了以下代码:
[StringLength(10, ErrorMessage = "The field Phone must have a maximum length of 10")]
public string Phone { get; set; }
点击按钮,我输入超过10个字符时无法检索上述验证消息。
还有我如何验证数字?
答案 0 :(得分:2)
您要发布到的控制器操作必须将包含Phone
属性的视图模型作为参数:
[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
...
}
或者如果不是这种情况,你应该调用里面的UpdateModel
或TryUpdateModel
方法来调用默认的模型绑定器,它负责调用验证逻辑并将任何潜在的错误消息插入到ModelState中
还有我如何验证数字?
您可以使用正则表达式:
[StringLength(10, ErrorMessage = "The field Phone must have a maximum length of 10")]
[RegularExpression(@"\d*", ErrorMessage = "The field Phone must contain only digits")]
public string Phone { get; set; }
答案 1 :(得分:0)
[MaxLength(10, ErrorMessage = "yourmessage")]
public string Phone
但你也可以使用正则表达式修复它, 只是谷歌“手机+正则表达”。很确定你可以使用regexAttr验证maxlength