ASP.NET MVC 3 - 404启动应用程序时

时间:2011-11-17 13:11:22

标签: asp.net-mvc-3

我继承了一个ASP.NET MVC 3应用程序。我对MVC 3一无所知。我已经使用ASP.NET Web Forms了5年多。当我尝试从Visual Studio启动应用程序时,收到404.浏览器指向http://localhost/Account/Logon。我注意到在我的项目中,有:

  • /Controllers/AccountController.cs
  • /Views/Account/LogOn.cshtml

我假设这是应该启动的。我在Global.asax.cs中设置了一个断点,发现我通过以下事件被重定向到这个页面:

void WSFederationAuthenticationModule_AuthorizationFailed(object sender, AuthorizationFailedEventArgs e)
{
  e.RedirectToIdentityProvider = false;
  HttpContext.Response.Redirect("/Account/Logon");
}

当我启动应用程序时,我得到了404.我完全失去了如何解决这个问题。我也不知道如何设置为起始页面"在MVC世界中。有人可以帮我克服这个障碍吗?我只想运行该应用程序。非常感谢你!

2 个答案:

答案 0 :(得分:2)

如果你打电话

  

http://localhost/Account/Logon

MVC,如果您在global.asax中没有更改路由,则正在寻找

  • 名为“帐户”的控制器

  • 此Controller中的方法“ LogOn ”。

如果你的ActionMethod“Account.LogOn”返回一个视图,MVC会查看观看/帐户/ 目录并尝试找到你登录查看。

更多信息:

Asp.NET MVC

Phil Haack´s Blog

Scott Guthrie´s Blog

希望这有帮助

答案 1 :(得分:1)

  

我假设这是应该发布的

不,你的假设是错误的。在ASP.NET MVC中,您永远不会直接访问视图。您始终会通过控制器操作,该操作会对模型执行某些处理并返回视图。

因此,当您请求/Account/Logon(假设默认路由)时,Logon上的AccountController操作应该执行:

public class AccountController: Controller
{
    public ActionResult Logon()
    {
        ...
    }
}

如果项目中不存在此类操作或控制器,您将获得404。

在继续继承项目之前,我强烈建议您通过以下部分教程熟悉ASP.NET MVC的基础知识:http://asp.net/mvc