【问题标题】:How to display error in different controller after post in ASP.NET MVC3在 ASP.NET MVC3 中发布后如何在不同的控制器中显示错误
【发布时间】:2012-03-25 21:05:12
【问题描述】:

首先,对不起我的英语。

我在索引中有两个表格。

登录表单将发布到 localhost/Account/LogOn

注册表单将发布到 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 中的 LogOn Action 与 SignUp Action 基本相同

我想我被 Return PartialView(user) 卡住了

我需要返回 HomeController 中的 Index Action 并维护 ModelState

有什么提示吗?

【问题讨论】:

    标签: asp.net asp.net-mvc-3 razor modelstate


    【解决方案1】:

    我认为使用 prg (POST-REDIRECT-GET) 模式是一种很好的做法,可以帮助您管理问题。使用过滤器导入和导出模型状态。

    看这里的第 13 点 http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx#prg

    我认为它总是相关的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      相关资源
      最近更新 更多