我正在使用MVC 5,我试图格式化一个电话号码。我找到了一些例子,但我似乎无法让它们发挥作用。有人看到我做错什么了吗?
查看:
<div class="form-group">
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>ViewModel:
[DisplayName("Phone Number")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:###-###-####}")]
public string PhoneNumber { get; set; }就像我尝试过this...although一样,我也不需要把它作为一个必需的字段。我不确定ReqularExpression是否会要求它?
[DisplayName("Phone Number")]
[DataType(DataType.PhoneNumber)]
[RegularExpression(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$", ErrorMessage = "Not a valid Phone number")]
public string PhoneNumber { get; set; }更新
对不起,我在最初的帖子中没有说清楚,但我想做的只是在使用EditFor助手在编辑视图中显示一个电话号码时,以#格式显示它。这不是一个必需的字段,我想我真正需要的唯一验证是数字。我要去掉所有的破折号,当我把它存储在数据库中时。
更新2
以下是我目前在ViewModel和视图中的内容。这只是显示电话号码,在我的编辑没有任何格式。另外,请注意,如果这会产生影响,我将使用MVC 5.2.3。
[DisplayName("Phone Number")]
[DisplayFormat(DataFormatString = "{0:###-###-####}", ApplyFormatInEditMode = true)]
public string PhoneNumber { get; set; }视图
<div class="form-group">
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PhoneNumber, "", new { @class = "text-danger" })
</div>
</div>发布于 2016-05-18 14:14:44
现在还不清楚你到底想要什么。
这应该适用于验证目的。
[DisplayName("Phone Number")]
[RegularExpression(@"[0-9]{3}-[0-9]{3}-[0-9]{4}$", ErrorMessage = "Please enter the phone number as XXX-XXX-XXXX")]
public string PhoneNumber { get; set; }另外,在您的视图中,您需要添加ValidationMessageFor
<div class="form-group">
@Html.LabelFor(model => model.PhoneNumber, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.PhoneNumber, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.PhoneNumber, "", new { @class = "text-danger" })
</div>
</div>更新:
若要使电话号码在编辑视图中正确显示:
[DisplayFormat(DataFormatString = "{0:###-###-####}", ApplyFormatInEditMode = true)]
public string Phone { get; set; }https://stackoverflow.com/questions/37301817
复制相似问题