PartialView и ненавязчивая проверка клиента не работают

Я ' m в настоящее время использует ASP.NET MVC3 RC, и я использую ненавязчивые проверки JQuery, как описано Брэдом Уилсоном в его блоге . Он отлично работает, но когда я отправляю свою форму (в Ajax) на сервер, я выполняю некоторые проверки на стороне сервера и возвращаю ту же строку (которая включена в частичное представление), если состояние моей модели недействительно. 2 проблемы с этим:

1-й: когда я делаю return PartialView в моем действии, все ненавязчивые атрибуты не отображаются. Я нашел "не элегантный" способ сделать это, но когда я это делаю, проверки клиентов прерываются. После того, как я вернусь из своего действия, даже если я вызову jQuery.validator.unobtrusive.parse () в моей обновленной строке, $ ("form"). Valid () всегда вернет true даже если это не так.

2-й: Я хочу, чтобы мое визуализированное представление отображалось в виде строки на сервере, чтобы я мог отправить его обратно в JsonResult (например, myJSonResult.html = RenderPartialToString ("partialName", модель) ).

Имеет ссылка, вот мое мнение (editInvitation):


    <%= Html.HiddenFor(x=>x.ID,new{id="ID"}) %>
    <%= Html.HiddenFor(x=>x.GroupID,new{id="GroupID"})  %>
    <%: Html.TextBoxFor(x => x.Name, new { id = "Name" })%><%:Html.ValidationMessageFor(x=>x.Name) %>


    <%: Html.TextBoxFor(x => x.Email, new { id = "Email" })%>  <%:Html.ValidationMessageFor(x=>x.Email) %>


    <%: Model.Status.ToFriendlyName()%>


  <%= InvitationsViewModel.RenderActions(Model, Html, InvitationsViewModel.CreateRowID(Model.ID))%>

И действие моего контроллера:

if (TryUpdateModel(invitation))
{
    validModel = true;
    //Other stuff
}
if (Request.IsAjaxRequest())
{
     //TODO : I return a partial view but I would prefer to return a JSonResult with the rendered view as a string in an Property of my JSon result
     return PartialView(validModel ? "DisplayInvitation" : "EditInvitation", invitation);
}

Спасибо

6
задан mberube.Net 15 November 2010 в 19:10
поделиться