ASP.Net MVC客户端/服务器验证

时间:2009-12-17 10:45:47

标签: asp.net-mvc validation annotations

我正在尝试使用此站点的example进行客户端站点验证。我正在尝试使用html表单标记而不是Html.BeginForm(),但这样做会禁用客户端验证。 EnableClientValidation仅适用于Html.BeginForm。有什么不同?

<%@ Page Language="C#" Inherits="ViewPage<ProductViewModel>" %>

<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) { %>

  <%= Html.TextBoxFor(m => m.Title) %>
    <%= Html.ValidationMessageFor(m => m.Title) %>
  <%= Html.TextBoxFor(m => m.Price) %>
    <%= Html.ValidationMessageFor(m => m.Price) %>

    <input type="submit" />
<% } %>

1 个答案:

答案 0 :(得分:1)

从您关联的帖子(强调添加):

  

下一步是在调用BeginForm之前通过调用EnableClientValidation为表单启用客户端验证。 在幕后,这会在新的FormContext中设置一个标志,让BeginForm方法知道启用了客户端验证。这样,如果您为表单设置了id,我们就会知道在连接客户端验证时使用哪个ID。如果不这样,表单将为您呈现一个。

BeginForm方法显然在ASP.NET MVC 2中做的不仅仅是“渲染表单标记” - 如果设置了该标志,它还会渲染所有客户端脚本以进行验证。

相关问题