我通过尝试将.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);
}
用户已通过身份验证,我应该重定向到默认视图,但不会重定向。我做错了什么?
答案 0 :(得分:1)
这应该是视图名称,而不是视图路径。所以:
return View("Default");
此外,默认视图应在与当前控制器(可能是Account)对应的文件夹中或在Shared文件夹中定义。你使用的路径表明它在Account中,你所概述的结构说它只是在Views文件夹中,所以我认为它也应该被提及。