gpt4 book ai didi

c# - 在 MVC 中实现验证

转载 作者:行者123 更新时间:2023-11-30 16:41:59 24 4
gpt4 key购买 nike

正在尝试验证我的电话号码,这样就没有人可以在输入框中输入随机字母。我确实有不显眼的验证脚本。到目前为止,我已经在我的模型中尝试了一些东西,

[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>

这是我的 Controller

[HttpPost]    
public ActionResult UpdatePhoneNumber(string phoneNumber)
{
if (ModelState.IsValid)
{
return View();
}
}

验证仍然无效,可能是什么问题?

谢谢

最佳答案

您没有获得客户端验证的原因是您已经使用 new { Name = "phoneNumber"} 更改了 name 属性并且您还没有创建phoneNumber 的验证消息占位符(只有一个用于 SMSPhoneNumber)。

在任何情况下都不应更改 name 属性。您也不应该添加 data-val-* 属性(并且不清楚为什么要更改 id 属性)。 HtmlHelper 方法在正确使用时将始终为模型绑定(bind)和验证生成正确的 html。

你没有得到任何服务器端验证的原因是你没有绑定(bind)到你的模型,只是绑定(bind)到一个string

修改 View 代码为

@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)

关于c# - 在 MVC 中实现验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47491414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com