尝试验证我的电话号码,以便没有人可以在输入框内输入随机字母。我确实有不引人注目的验证脚本。到目前为止,我已经在我的模型中尝试了一些内容,
[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();
}
}
验证仍然无效,可能是什么问题?
由于
答案 0 :(得分:2)
您未获得客户端验证的原因是您使用name
更改了new { Name = "phoneNumber" }
属性,并且您尚未为phoneNumber
创建验证消息占位符(仅适用于SMSPhoneNumber
name
)。
在任何情况下都不应更改data-val-*
属性。您也不应该添加id
属性(并且不清楚为什么更改HtmlHelper
属性)。如果使用正确,string
方法将始终为模型绑定和验证生成正确的html。
您没有获得任何服务器端验证的原因是您没有绑定到您的模型,只是@Html.TextBoxFor(m => m.SMSPhoneNumber, new { @class = "form-control", placeholder = "Enter Phone Number" })
@Html.ValidationMessageFor(m => m.SMSPhoneNumber, null, new { @class = "text-danger" })
。
将视图代码更改为
public class Company
并更改POST方法以接收您的模型(假设其说[HttpPost]
public ActionResult UpdatePhoneNumber(Company model)
),然后
df <- data.frame(before_weight=c(1,2,3,2,1),before_pain=c(2,2,1,3,1),after_weight=c(1,3,3,2,3),after_pain=c(1,1,2,3,1))