无法重定向到ASP.NET MVC中的特定视图

时间:2015-05-07 21:22:40

标签: asp.net asp.net-mvc asp.net-mvc-4

我通过尝试将.NET Web应用程序转换为ASP.NET MVC来学习ASP.NET MVC。 我有一个控制器和登录视图。 如果用户已通过身份验证,我想重定向到默认视图。

这是文件夹结构:

Views
  - Account
  - Home
  - Shared
Default.cshtml

这是控制器中的登录操作:

public ActionResult Login(LoginModel model)
{
    if (ModelState.IsValid)
    {
         bool authenticated = Security.AuthenticateLANUser(model.UserName, model.Password);
         if (!authenticated)
            {
                Session["authenticated"] = false;
                System.Text.StringBuilder errorMsg = new System.Text.StringBuilder();
                errorMsg.Append("Invalid Login/Password entered.");
                errorMsg.Append("We were not able to authenticate you in in Active Directory based on the information entered, ");
                errorMsg.Append("but we recorded your attempt for audit purposes.");

                ModelState.AddModelError("", errorMsg.ToString());
                return View(model);
            }
            else
            {
                return View("Views/Account/Default.cshtml");
            }
        }

        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return View(model);
    }

用户已通过身份验证,我应该重定向到默认视图,但不会重定向。我做错了什么?

1 个答案:

答案 0 :(得分:1)

这应该是视图名称,而不是视图路径。所以:

return View("Default");

此外,默认视图应在与当前控制器(可能是Account)对应的文件夹中或在Shared文件夹中定义。你使用的路径表明它在Account中,你所概述的结构说它只是在Views文件夹中,所以我认为它也应该被提及。