我正在通过ASP.NET MVC教程工作,无法找到我正在寻找的答案。
我知道'Controller'根文件夹中的每个控制器类都映射到一个Url,所以:
****Controller Folder****
|- StoreController.cs
映射到$url/Store
但是,如果我想创建一个'子文件夹'
即。一个位于$url/Store/Testing
的控制器类我似乎无法看到我如何去做。
我尝试从StoreController.cs
派生一个类,但这没有用。
答案 0 :(得分:1)
URL不一定与MVC应用程序内部文件夹结构相对应。您可以使用MVC路由表来隐藏内部结构,并将特定URL重定向到您想要的任何控制器/操作。例如,您可以在TestingController.cs
文件夹中创建Controllers
类,并在Global.asax
中使用此路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Store-Testing", // Route name
"Store/Testing/{action}/{id}", // URL with parameters
new { controller = "Testing", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
在这种情况下,对http://[domain]/Store/Testing
的请求将由TestingController处理。
答案 1 :(得分:0)
该url将使用默认路由指向Store控制器中名为Testing的操作。
但是,您可以在global.asax文件中创建自己的自定义路由。