当我在MVC中使用验证时,我编写了一个自定义属性来验证属性。最初,客户端验证无效,因为属性未注册。当我点击 save
时
联系服务器后按钮 它显示错误消息。谁能说出这个服务器端验证是如何进行而不是客户端验证?
属性用法 - >
[PhoneNumberHasPlus(ErrorMessage="Invalid number")]
public string PhoneNumber {get;set;}
属性 - >
public class PhoneNumberHasPlusAttribute : RegularExpressionAttribute
{
public PhoneNumberHasPlusAttribute() :
base(@"^[+][0-9' '\.\-\(\)]{10,20}$") { }
public override string FormatErrorMessage(string name)
{
if (String.IsNullOrEmpty(ErrorMessage))
ErrorMessage = "PhoneNumberWithPlus";
return ErrorMessage;
}
}
答案 0 :(得分:0)
您必须在行动中拥有Model.IsValid。该元素开启验证。
public ActionResult Create(Model model) {
if (ModelState.IsValid) {
// logic
}
return View(dinner);
}
请确保您的视图包含jQuery库的正确路径
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
此外,您必须使用此Razor语法生成正确的html
@Html.EditorFor(model => model.ReleaseDate)
@Html.ValidationMessageFor(model => model.ReleaseDate)
Here您可以找到向MVC模型添加验证的完整教程。
答案 1 :(得分:0)
您需要在视图中包含jquery Val包 像这样
@section scripts
{
@Scripts.Render("~/bundles/jqueryVal")
}