MVC2 Client Validation isn't working when getting form from ajax call

瘦欲@ 提交于 2019-12-13 16:01:18

问题


I'm trying to use MVC2 client-side validation in a partial view that is rendered via $.get. However, the client validation isn't working. I'm not quite sure what the deal is.

[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;" />
<% } %>

I'm not doing anything special to render the the partial view. Just putting the html into a div and showing it in a modal popup.

On a side note, does anyone know if it's possible to submit the form with client validation without a submit button?


回答1:


Some time ago I wrote a post about this issue, you might use it as start point in your situation (you will have to modify the place where you call the functions and pass correct element to process): http://tpeczek.com/2010/04/making-aspnet-mvc-2-client-side.html




回答2:


MVC2 client-side validation relies on some additional javascript being rendered on the page that encodes the validation rules from the model. I think you can get this from a partial view, though I haven't tried, as long as you include the EnableClientValidation call in your partial view just prior to beginning the form. Make sure that you have the MVC client javascript included in the main view.

<% Html.EnableClientValidation(); %>
<% 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;" />
<% } %>

I usually use MVC2 model-based validation in conjunction with the jQuery validation plugin using the MVC/jQuery glue javascript from the MVCFutures code. I know that this works on form submission, whether the submit is triggered via a submit button or javascript. All of my "buttons" are really links that trigger form submission via javascript and it works for me. I presume this is true of the standard MVC validation scripts, but haven't used them.



来源:https://stackoverflow.com/questions/2892031/mvc2-client-validation-isnt-working-when-getting-form-from-ajax-call

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!