MVC部分登录控制返回视图

时间:2010-08-31 21:35:09

标签: asp.net-mvc login partial-views

以下是:MVC Partial Login Control

我从我的子控件中触发了AccountController Logon Post事件。我现在遇到的问题是,当用户输入错误的密码时,AccountController登录帖子会尝试返回Logon.aspx页面,而不是我的Logon部分控件。这是控制器的代码:

<HttpPost()> _
Public Function LogOn(ByVal model As LogOnModel, ByVal returnUrl As String) As ActionResult
    If ModelState.IsValid Then
        If MembershipService.ValidateUser(model.UserName, model.Password) Then
            FormsService.SignIn(model.UserName, model.RememberMe)
            If Not String.IsNullOrEmpty(returnUrl) Then
                Return Redirect(returnUrl)
            Else
                Return RedirectToAction("Index", "Home")
            End If
        Else
            ModelState.AddModelError("", "The user name or password provided is incorrect.")
        End If
    End If

    ' If we got this far, something failed, redisplay form
    Return View(model)
End Function

我传递了returnUrl,所以如果用户输入正确的细节,它就可以完美地运行。但我想要它做的就是如果他们输入了错误的详细信息,就是在我的孩子控制中显示“提供的用户名或密码不正确”。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

MVC会自动查找与控制器操作同名的视图,但我不认为它会查找部分视图(我可能错了)。

试试这个:

return PartialView(model)

如果部分视图名称与控制器操作不同,则必须明确指定部分视图名称

return PartialView("PartialViewName",model)

我是否正确地认为局部视图只是输入了错误的细节?如果是这样,您可以通过使用System.ComponentModel.DataAnnotations类来节省很多麻烦,这样您就可以在同一个登录表单上显示验证消息,因此您不必构建和维护部分视图。如果您已经了解数据注释,那么如果没有添加评论,我会发布一些有用的链接来解释它比我想的要好得多。