在MVC中实现验证
试图验证我的电话号码,以便任何人都不能在输入框内输入随机字母。我确实有不引人注意和有效的脚本。到目前为止,我已经尽了模型中的几件事情,在MVC中实现验证
[RegularExpression(@"^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$", ErrorMessage = "Not a valid Phone number")] [Display(Name = "Phone")]
public string SMSPhoneNumber;
或
[DataType(DataType.PhoneNumber)] public string SMSPhoneNumber;
这是我的看法
<form role="form" action="#"> @Html.AntiForgeryToken()
<div class="form-group">
<label class="control-label"><b>Phone Number</b></label>
@Html.TextBoxFor(model => model.SMSPhoneNumber, new {@class = "form-control", @placeholder = "Enter Phone Number", @id = "phoneNumber", Name = "phoneNumber", data_val_required = "Please enter a phone number"})
@Html.ValidationMessageFor(model => model.SMSPhoneNumber, null, new { @class = "text-danger" })
</div>
<button type="button" data-dismiss="modal" class="btn dark btn-outline"> Cancel</button>
<button type="button" data-toggle="modal" id="" class="btn green" onclick="javascript: updateDatabase();">Submit</button>
</form>
这是我的控制器
[HttpPost] public ActionResult UpdatePhoneNumber(string phoneNumber)
{
if (ModelState.IsValid)
{
return View();
}
}
的验证仍然无法正常工作,会发生什么是问题吗?
感谢
回答:
的原因,你没有得到客户端验证是,你必须使用new { Name = "phoneNumber" }
改变name
属性,您尚未创建phoneNumber
验证消息占位符(只有我一个SMSPhoneNumber
)。
在任何情况下,您都不应该更改name
属性。你也不应该加入data-val-*
属性(并且不清楚你为什么改变id
属性)。正确使用时,HtmlHelper
方法将始终为模型绑定和验证生成正确的html。
你没有得到任何服务器端验证的原因是你没有绑定到你的模型,只是为了string
。
更改视图代码
@Html.TextBoxFor(m => m.SMSPhoneNumber, new { @class = "form-control", placeholder = "Enter Phone Number" }) @Html.ValidationMessageFor(m => m.SMSPhoneNumber, null, new { @class = "text-danger" })
,改变POST方法来获得你的模型(假设其说public class Company
),然后
[HttpPost] public ActionResult UpdatePhoneNumber(Company model)
以上是 在MVC中实现验证 的全部内容, 来源链接: utcz.com/qa/257173.html