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; 
     } 
    } 

回答

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> 

而且你必须使用这种剃刀语法生成正确的HTML

@Html.EditorFor(model => model.ReleaseDate) 
@Html.ValidationMessageFor(model => model.ReleaseDate) 

Here你可以找到一个完整的向MVC模型添加验证的教程。

0

您需要包括jQuery的瓦尔捆绑到您的视图 这样

@section scripts 
{ 
    @Scripts.Render("~/bundles/jqueryVal") 
} 
相关问题