ASP.Net MVC视图和控制器文件结构

时间:2010-03-29 20:05:07

标签: asp.net-mvc routing

我很困惑View和相应的控制器必须在MVC 1.0项目结构中设置。目前在默认应用程序中,我们在Home文件夹下有About.aspx页面,所有控制器操作都在HomeController中处理。该控制器混合了Home动作和About动作。它让事情变得混乱。我喜欢清楚地分离我的控制器。喜欢分别关于Controller和HomeCotroller。为此我在视图文件夹下创建了另一个文件夹“关于”并将Aboput.aspx放入其中,否则我们将收到以下错误。我怎么能实现它?我喜欢在View中拥有精确的文件夹结构,与Cotroller相同。

The view 'About' or its master could not be found. The following locations were searched:
~/Views/About/About.aspx
~/Views/About/About.ascx
~/Views/Shared/About.aspx
~/Views/Shared/About.ascx 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The view 'About' or its master could not be found. The following locations were searched:
~/Views/About/About.aspx
~/Views/About/About.ascx
~/Views/Shared/About.aspx
~/Views/Shared/About.ascx

我喜欢像\ iew \ About.aspx和Cotroller \ AboutController.cs这样的文件夹 或\ View \ Info \ About.aspx和\ Controller \ Info \ AboutController.cs。

这将使我的项目和代码非常干净,维护良好。 在此先感谢您的帮助

2 个答案:

答案 0 :(得分:2)

我认为他们希望你拥有

浏览/关于/ Index.aspx的

/ Views / AboutController Index()将指向

路由示例:

Global.asax中的

protected void Application_Start()
{
    MyRoutes.RegisterRoutes(RouteTable.Routes);         
}

然后在MyRoutes类中:

public class MyRoutes
{
     internal static void RegisterRoutes(RouteCollection routes)
     {
         // add routes
     }
}

答案 1 :(得分:1)

您应该查看ASP.Net MVC框架的基本教程。它在几个约定下运行 - 其中一个最大的约定是文件命名和文件夹结构。

虽然您喜欢的结构可能适合简单项目或个人偏好,但对于大型项目来说并不理想。您需要遵循惯例,或者了解框架,以便覆盖它的行为。