当我们在ASP.NET MVC中需要验证用户输入的手机号码时,可以使用正则表达式来进行验证。下面是ASP.NET MVC使用正则表达式验证手机号码的完整攻略:
- 首先,在Model中定义一个手机号码属性。在Models文件夹中,打开要添加手机号码属性的类,然后添加以下代码:
[RegularExpression(@"^1[3456789]\d{9}$", ErrorMessage = "请输入正确的手机号码")]
public string PhoneNumber { get; set; }
这里使用了正则表达式来验证手机号码。正则表达式“^1[3456789]\d{9}$”表示以数字1开头,第二位是3、4、5、6、7、8、9中的一个,后面跟着9个数字,共计11位。如果用户输入的手机号码不符合这个规则,就会显示错误信息“请输入正确的手机号码”。
- 接下来,在View中添加一个手机号码输入框,并将其与Model中的手机号码属性绑定。在Views文件夹中,打开要添加手机号码输入框视图,然后添加以下代码:
<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>
这里使用了Html.EditorFor和Html.ValidationMessageFor两个辅助方法。Html.EditorFor方法会自动根据Model中的属性类型生成相应的输入框,而Html.ValidationMessageFor方法会自动显示Model中的属性验证错误信息。
- 最后,在Controller中添加一个Action来处理表单提交。在Controllers文件夹中,打开要添加Action的Controller,然后添加以下代码:
[HttpPost]
public ActionResult Index(MyModel model)
{
if (ModelState.IsValid)
{
// 验证通过,执行相应的操作
return RedirectToAction("Success");
}
else
{
// 验证失败,返回原来的视图
return View(model);
}
}
这里使用了ModelState.IsValid属性来判断Model中的属性是否通过验证。如果验证通过,就可以执行相应的操作,比如跳转到成功页面;如果验证失败,就需要返回原来的视图,并显示验证错误信息。
下面是两个示例说明:
-
如果用户输入的手机号码不符合规则,就会显示错误信息。例如,如果用户输入的手机号码是“12345678901”,就会显示错误信息“请输入正确的手机号码”。
-
如果用户输入的手机号码符合规则,就可以执行相应的操作。例如,如果用户输入的手机号码是“13912345678”,就可以跳转到成功页面。