Я ' 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);
}
Спасибо