我试图在通过$ .get呈现的部分视图中使用MVC2客户端验证。但是,客户端验证不起作用。我不太清楚交易是什么。当从ajax调用获取表单时,MVC2客户端验证不起作用
[Required(ErrorMessage = "Email is required")]
public string Email { get; set; }
<% using (Ajax.BeginForm(new AjaxOptions { Confirm = "You sure?" })) { %>
<%: Html.TextBoxFor(m => m.Email, new { @class = "TextBox150" })%>
<%= Html.ValidationMessageFor(m => m.Email)%>
<input type="submit" value="Add/Save" style="float: right;" />
<% } %>
我没有做任何特别的渲染局部视图。只需将html放入div并在模式弹出窗口中显示即可。
在附注中,有没有人知道是否可以在没有提交按钮的情况下提交带有客户端验证的表单?
抱歉,我忘了将它包含在代码片段中。我确实在我的ajax.begin表单上方有以下内容: <%Html.EnableClientValidation(); %> <%Html.ValidationSummary(); %> – devlife 2010-05-23 14:36:04
@devlife - 我刚刚注意到它是通过AJAX提交的。我不知道在通过AJAX提交表单时是否触发验证逻辑 - 因为提交事件被AJAX脚本中止,因此它可以异步执行。您可能需要在OnBegin方法中手动触发验证。现在是时候使用JavaScript的调试版本来启动Firebug,并且看看实际执行的是什么,我想。 – tvanfosson 2010-05-23 14:55:42
如果你不想插入一个表单到页面中,只需输入几个元素,这是如何工作的? – 2011-01-16 23:29:15