Как использовать преимущества атрибутов проверки PartialView, AJAX и модели в ASP.NET MVC? - PullRequest
0 голосов
/ 23 ноября 2010

Я новичок в MVC и пытаюсь разобраться с вызовами AJAX и проверкой модели.Вот что у меня есть:

Действие контроллера, которое обслуживает представление с одним текстовым полем и ссылкой.Представление выглядит следующим образом:

<div> 
... 
<input type="text" name="registration" value=""/><a id="checkRegoLink" href="#">Check rego</> 
... 
</div>

checkRegoLink выполняет POST-вызов $ .ajax () для действия, которое служит PartialViewResult.

$.ajax({
  url:"/Entry/CheckRego",
  type: "POST",
  data: {...stuff...},
  success: function (data, status, request){
    $("#target").html(data);
  },
});

PartialViewResult служит для строго типизированногочастичный вид _CreateEntry.Модель для этого представления имеет некоторые атрибуты [Required] для различных свойств.Вот некоторый фрагмент этого частичного представления:

@model namespace.EntryModel
@{ Html.EnableClientValidation(); }
@using (Html.BeginForm("CreateEntry", "Entry", FormMethod.Post))
{
 ...various entry fields, labels and stuff...
 <input type="submit" value="Add Entry"/>
}

Мой вопрос: как мне вернуть это частичное представление обратно в $("#target") div с сообщениями об ошибках валидации.В действии контроллера, которое принимает POST из строго типизированного представления, которое я пробовал return PartialView("_CreateEntry",model), но оно возвращает само частичное представление, полное с сообщениями об ошибках валидации, но, конечно, само по себе, без родительского макета.

Любые идеи будут с благодарностью.Я постепенно поправляюсь, когда голосую и принимаю ответы.Прошу прощения за мою низкую статистику - я обязательно проголосую за ответы и приму их на ходу.

Спасибо, Дэни.

PS.Я использую MVC 3 последний RC

1 Ответ

0 голосов
/ 24 ноября 2010

Попробуйте использовать Ajax.BeginForm () вместо Html.BeginForm ().Посмотрите на использование, это должно позволить вам указать различные параметры, включая div для обновления.Если у вас нет причин делать это вручную, зачем вручную делать то, что уже встроено?

Редактировать:

Вы говорите: «Мой вопрос, как мне вернуть это частичное представление обратно в $ ("#target") div с сообщениями об ошибках валидации. "

Затем вы говорите" ... но это возвращает само частичное представление, полное с сообщениями об ошибках валидации, но, конечно, само по себе, без родительского макета«.<- разве это не то, что вы хотите? </p>

Разве это не то, что вы хотите?Частичное представление в комплекте с сообщениями об ошибках валидации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...