0

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

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

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

还有我将如何验证是否为数字?

4

2 回答 2

2

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

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

或者,如果不是这种情况,您应该调用内部的UpdateModelorTryUpdateModel方法来调用默认模型绑定器,该绑定器负责调用验证逻辑并将任何潜在的错误消息插入到 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; }
于 2012-08-24T07:41:39.030 回答
0
[MaxLength(10, ErrorMessage = "yourmessage")]
public string Phone

但是您也可以使用正则表达式来修复它,只需 google “phone + regex”。很确定您可以使用 regexAttr 验证 maxlength

于 2012-08-24T08:49:50.160 回答