Проверка частичного представления без JavaScript - PullRequest
1 голос
/ 02 февраля 2012

У меня есть частичное представление, в котором есть форма.Я размещаю эту форму, используя шаблон PRG.Я использую AjaxHelper для создания моей формы.Мне также нужна эта форма для работы без JavaScript.Проблема в том, что при сбое проверки модели она всегда изменяет URL-адрес на мое частичное представление.

public ActionResult PostForm(PostFormModel postFormModel)
{
    if (ModelState.IsValid)
    {
        return RedirectToAction("SomewhereElse");
    }
    else
    {
        if (Request.IsAjaxRequest())
        {
            return PartialView("_PostForm")
        }
        else
        {
            // What do I do here?
        }
    }
}

Вот что я пробовал:

return PartialView("_PostForm", postFormModel);

Это просто делает частичное представлениене содержит родительского материала.

return View("Index", new ParentModel() { PostFormModel = postFormModel });

Это на самом деле дает правильный результат.Он отображает родительское представление, но URL является частичным http://localhost:22485/Controller/PostForm!Я чувствую, что это действительно близко к решению.Что теперь?

1 Ответ

0 голосов
/ 02 февраля 2012

Если вы хотите изменить URL, вы должны перенаправить на другое действие (используя шаблон PRG).Вставьте следующий код вместо «// Что мне здесь делать?»:

postModelService.Save(postFormModel); //to Session or to DB
return RedirectToAction("Parent");

Новое действие должно выглядеть следующим образом:

public ActionResult Parent()
{
    var postFormModel = postModelService.Load();
    return View("Index", new ParentModel() { PostFormModel = postFormModel });
}

Надеюсь, это поможет.

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