Как отобразить ошибку в другом контроллере после публикации в ASP.NET MVC3 - PullRequest
0 голосов
/ 08 марта 2012

Во-первых, простите за мой английский.

У меня есть две формы в индексе.

Форма входа будет публиковать на localhost / Аккаунт / LogOn

Форма регистрации будет публиковатьсяto localhost / Account / SignUp

Как отобразить ошибку в localhost / после того, как пользователь опубликовал одну из форм?

В настоящее время ошибка будет отображаться в localhost / Account / LogOn или localhost / Account /SignUp

Вот мои коды:

#Index Action in HomeController

    Public Function Index() As ActionResult
        Return PartialView("_default")
    End Function

#_default layout
    <html>
        <head></head>
        <body>
            @code
                Html.RenderAction("SignUp", "Account")
            End Code

            @code
                 Html.RenderAction("LogOn", "Account")
            End Code
        </body>
    </html>

#SignUp Action in AccountController

Public Function SignUp() As ActionResult
    Return PartialView()
End Function

<HttpPost()> _
Public Function SignUp(user As UserView) As ActionResult
    If ModelState.IsValid Then
         'some process
         Return RedirectToAction("Welcome", "Home")
    Else
         ModelState.AddModelError("", "Email already taken")
    End If

    Return PartialView(user)
End Function

В основном действие входа в систему AccountController аналогично действию входа вверх

Я думаю, что застрял с Return PartialView(user)

Мне нужно вернуться к Index Action в HomeController и сохранить ModelState

Есть ли какие-либо подсказки для этого?

1 Ответ

0 голосов
/ 08 марта 2012

Я думаю, что использование шаблона prg (POST-REDIRECT-GET) является хорошей практикой и может помочь вам в решении вашей проблемы. ModelState импортируется и экспортируется с фильтрами.

Посмотрите на точку № 13 здесь http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx#prg

Я думаю, что это всегда актуально.

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