Вот мой контроллер действия:MVC Ajax.BeginForm не показывает ошибки проверки
[HttpPost]
public ActionResult CreateModal(MyModel myModel)
{
if (ModelState.IsValid)
{
//success logic
}
return PartialView("_MyPartial", myModel);
}
И мое частичное (это в диалоговом окне JQuery):
@using (Ajax.BeginForm("CreateModal", "MyController", new {area = "MyArea2"}, new AjaxOptions() {HttpMethod = "POST", InsertionMode = InsertionMode.Replace}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new {@class = "text-danger"})
<div class="row">
<fieldset>
<legend>Info</legend>
<div class="row">
<div class="form-group col-md-4">
@Html.LabelFor(model => model.Name, htmlAttributes: new {@class = "control-label"})
@Html.EditorFor(model => model.Name, new {htmlAttributes = new {@class = "form-control"}})
@Html.ValidationMessageFor(model => model.Name, "", new {@class = "text-danger"})
</div>
</div>
</fieldset>
</div>
}
я могу отправлять сообщения в действие только штрафом , но если мой ModelState
недействителен, я не получаю ошибок проверки на return PartialView("_MyPartial", myModel)
, хотя при переходе через отладчик я вижу ошибки.
Я использую последние версии jquery и связанных с ними технологий от nuget.
Кроме того, не уверен, если это имеет значение, но я отправляю от MyArea1
контроллеру в MyArea2
. _MyPartial
живет в общей папке.
Вы не указали 'UpdateTargetId' в' AjaxOptions' (и почему бы вам не осуществлять ненавязчивый проверки на стороне клиента, чтобы предотвратить формы представления, если его недействительным?) –
Я был под впечатлениями, мне не нужен UpdateTargetId, если я возвращаю весь частичный вид. – RJP
@StephenMuecke как реализовать ненавязчивую проверку на стороне клиента? – Alex