2013-07-24 38 views
1

我有一个简单的ASP.NET MVC窗体,一切工作正常,唯一的是我想 当我选择一个字段时自动显示验证消息。但为了显示消息验证,我需要发送表单。我需要使用ajax吗?谢谢你的帮助。当用户选择一个字段时显示验证消息

这里是我的形式:

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "TestForm" })) 
    { 
      <div> 
      @Html.LabelFor(m => m.FirstName) 
      </div> 

      <div> 
      @Html.TextBoxFor(m => m.FirstName, new { id = "FirstName" }) 
      @Html.ValidationMessageFor(m => m.FirstName) 
      </div> 
      <div> 
       @Html.LabelFor(m => m.LastName) 
      </div> 

      <div> 
      @Html.TextBoxFor(m => m.LastName, new { id = "LastName" }) 
      @Html.ValidationMessageFor(m => m.LastName) 
      </div> 

      ... 

} 

型号

public class TestModel 
     { 
      [Required(ErrorMessage = "FirstName should blabla")] 
      [StringLength(4, ErrorMessage = "You must...", MinimumLength = 1)] 
      [DataType(DataType.Text)] 
      [Display(Name = "FirstName")] 
      public string FirstName { get; set; } 

      [Required(ErrorMessage = "LastName should blabla")] 
      [StringLength(4, ErrorMessage = "You must...", MinimumLength = 1)] 
      [DataType(DataType.Text)] 
      [Display(Name = "LastName")] 
      public string LastName { get; set; } 

      ... 
} 
+2

您可以编写一些javascript来触发字段选择事件的无关验证。还有很多关于如何做到这一点的其他问题/文章。 – Dmitry

回答

1

是的,你需要采取一些措施,使客户端验证。 This blog post讨论使用内置的验证器。在调用Html.BeginForm之前,您需要@{ Html.EnableClientValidation(); },或者您可以在Web.config中执行此操作。

This VS Magazine article讨论了注册JavaScript函数和服务器端方法以回答JavaScript请求的过程。尽管它是为MVC 3编写的,但它应该同样适用于MVC 4.

+0

感谢您的帮助,但是当我尝试访问VS杂志文章时,我收到了404错误页面。你有使用ajax的代码的例子吗? – user2037696

+0

如果您需要更具体的示例,Google搜索提供了许多有前景的链接,例如[MVC3自定义客户端验证和不显眼的Ajax](http://www.falconwebtech.com/post/2012/04/21/MVC3-定制客户端验证与 - 不显眼,Ajax.aspx) – neontapir

相关问题