Я пытаюсь использовать диалоговое окно JQuery для вызова окна, скажем, кнопки добавления, которая, следовательно, покажет диалог с формой Html.BeginForm () внутри.
Либо с помощью кнопокв диалоговом окне или в диалоге внутри я хочу отправить форму, а затем получить ее обратно, чтобы показать обновление, которое было успешно добавлено, или показать, что с формой есть некоторые проблемы (например, серверошибки стороны)
EG:
public ActionResult EventSave(EventManageModel model)
{
if (fake error, db save failed)
ModelState.AddModelError("_FORM", "DB save failed!");
return PartialView("EventManage", model);
}
Я думаю, что я получил правильную проверку на стороне клиента, используя:
$.validator.unobtrusive.parse("#EventManage");
Но мой большой вопрос на самом деле на стороне серверапроверка / получение данных на стороне сервера.Я не думаю, что удаленная проверка работает для меня, потому что такого рода ошибки были бы более / менее основанными на форме ошибками, например, вместо конкретного текстового поля.
Как я могу заставить это работать?Я действительно понятия не имею, я пытался теоретически везде, чтобы заставить это работать.
В момент, когда форма диалога отправляет, у меня есть что-то вроде этого:
"Save": function () {
$.validator.unobtrusive.parse("#EventManage");
if ($("#EventManage").valid()) {
$.ajax({
url: "/Home/EventSave",
type: 'POST',
data: $("#EventManage").serialize(),
success: function (result) {
$("#EventManage").html(result);
},
error: function (result) {
$("#EventManage").html(result);
}
});
}
},
Яоднако, не получая то, что я хочу, диалоговое окно, по-видимому, не обновляется и не обновляет частичное представление без ошибок.
Фактически я следую этому примеру, чтобы заставить его работать:
http://iwantmymvc.com/dialog-form-with-jqueryui-and-mvc-3
Пожалуйста, дайте несколько советов, как это сделать?:)
РЕДАКТИРОВАТЬ:
My EventManage частичная форма: -
@model Harrods.Web.Models.EventManageModel
<div>
@using (Html.BeginForm("EventSave", "Home", FormMethod.Post, new { id = "EventManage", @class = "Dialog" }))
{
@Html.ValidationSummary(false, "Please correct the errors below and try again:", new { @class = "ui-state-error ui-corner-all" })<br />
<br />
@Html.AntiForgeryToken()
<fieldset>
<legend>Event Details</legend>
<br />
@Html.Hidden("Id")
<div class="editor-label-dialog">
@Html.LabelFor(m => m.Event_Name)
</div>
<div class="editor-field-dialog">
@Html.TextBoxFor(m => m.Event_Name)
<br />
@Html.ValidationMessageFor(m => m.Event_Name)
</div>
<p class="clear"></p>
<br />
<div class="editor-label-dialog">
@Html.LabelFor(m => m.Event_Date)
</div>
<div class="editor-field-dialog">
@Html.TextBoxFor(m => m.Event_Date)
<br />
@Html.ValidationMessageFor(m => m.Event_Date)
</div>
<p class="clear"></p>
<br />
<input type="submit" class="addNew" value="Save" />
<div class='loading' style='display: none'><img src="@Url.Content("~/Assets/img/loading.gif")" title="Loading" /></div>
</fieldset>
}
</div>
EDIT2
Похоже, что я заставил его работать на >> success: function (result)
, но это не входит в ошибку: function (result)
, хотя уже есть ошибка.