2011-11-17 29 views
0

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

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

我假定这就是应该启动.I've在Global.asax.cs中设置断点,发现我正在通过以下事件重定向到这个页面:

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

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

+0

这可能是一个愚蠢的问题,但你已经安装在你的开发MVC3做框? – simonlchilds

+0

从头开始,如果没有,您可能无法构建应用程序。看,告诉你这是愚蠢的! – simonlchilds

+0

这里是我找到我的答案:http://stackoverflow.com/questions/3877339/asp-net-mvc-beta-authorize-attribute-sends-me-to-wrong-action –

回答

1

我假定这就是应该推出

不,你的假设是错误的。在ASP.NET MVC中,你从不直接访问视图。你总是通过一个控制器动作,对模型执行一些处理并返回一个视图。

所以,当你要求/Account/Logon(假设默认的路由),它是在AccountControllerLogon行动应该执行:

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

如果这样的行动或控制器不存在于该项目,你会得到404 。

之前与继承的项目,我会强烈建议您通过以下一些教程在这里与ASP.NET MVC的基础知识,熟悉自己在进行任何进一步的:http://asp.net/mvc

2

如果调用

http://localhost/Account/Logon

MVC,如果你在Global.asax中没有改变路线,寻找

  • 一个控制器命名为 “帐户

  • 方法“LogOn“。

如果ActionMethod “Account.LogOn” 返回查看,MVC眺望查看/帐号/目录,并试图找到你LogOn支持查看。

很多更多信息的:

Asp.NET MVC

Phil Haack´s Blog

Scott Guthrie´s Blog

希望这有助于

+0

嗨dknaack,我注意到有一个方法,看起来像公共ActionResult LogOn() { return View(“LogOn”); }此方法位于位于/Controllers/AccountController.cs的文件中。所以我很困惑,为什么我得到了404。任何想法? –

+0

对,控制器中的方法是“actionMethods”,它们必须返回ActionResult或派生类型。你有没有Views/Account文件夹和一个LogOn文件? – dknaack

+0

我有一个Views/Account文件夹。该文件夹包含一个名为LogOn.cshtml的文件。 –

相关问题