我正在使用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>
视图模型:
[DisplayName("Phone Number")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:###-###-####}")]
public string PhoneNumber { get; set; }
以及我试过这个...虽然我不需要这个作为必填字段。我不确定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和View中的内容。这只是在我的编辑中显示没有任何格式的电话号码。作为附注,如果它有所作为,我正在使用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>
答案 0 :(得分:0)
目前还不清楚你到底想要什么。
这应该用于验证目的。
[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; }