在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

回到顶部