显示NOT REQUIRED case的StringLength消息

时间:2012-08-24 07:33:15

标签: asp.net-mvc-3

我有@Html.ValidationMessageFor的@ Html.TextBoxFor控件,它不是必填字段,但是最大长度有一个限制,也只允许数字。我在ViewModel中给出了以下代码:

    [StringLength(10, ErrorMessage = "The field Phone must have a maximum length of 10")]
    public string Phone { get; set; }

点击按钮,我输入超过10个字符时无法检索上述验证消息。

还有我如何验证数字?

2 个答案:

答案 0 :(得分:2)

您要发布到的控制器操作必须将包含Phone属性的视图模型作为参数:

[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    ...
}

或者如果不是这种情况,你应该调用里面的UpdateModelTryUpdateModel方法来调用默认的模型绑定器,它负责调用验证逻辑并将任何潜在的错误消息插入到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