1

当我在 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;
        }
    }
4

2 回答 2

0

您需要像这样将 jquery Val bundle 包含到您的视图中

@section scripts
{
    @Scripts.Render("~/bundles/jqueryVal")
}
于 2017-07-18T23:20:48.140 回答
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)

在这里,您可以找到向 MVC 模型添加验证的完整教程。

于 2016-01-22T07:17:31.467 回答