我正在尝试使用此站点的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" />
<% } %>
答案 0 :(得分:1)
从您关联的帖子(强调添加):
下一步是在调用BeginForm之前通过调用EnableClientValidation为表单启用客户端验证。 在幕后,这会在新的FormContext中设置一个标志,让BeginForm方法知道启用了客户端验证。这样,如果您为表单设置了id,我们就会知道在连接客户端验证时使用哪个ID。如果不这样,表单将为您呈现一个。
BeginForm方法显然在ASP.NET MVC 2中做的不仅仅是“渲染表单标记” - 如果设置了该标志,它还会渲染所有客户端脚本以进行验证。