2013-03-05 56 views
1

它现在就像本地主机/控制器/动作 但我希望它像本地主机/ MainFolder /子文件夹/控制器/动作如何获得高级Url路由参数?

,因为我需要让我的MainFolder和子文件夹名称;像

RouteData routeData = htmlHelper.ViewContext.RouteData; 
string currentAction = routeData.GetRequiredString("action"); 
string currentMainFolder = routeData.GetRequiredString("mainFolder"); 
string currentSubFolder = routeData.GetRequiredString("subFolder"); 

MyViewEngine Codes;

public class MyViewEngine: RazorViewEngine 
{ 
    private static string[] NewViewFormats = new[] { "~/Views/MainFolder/SubFolder/{1}/{0}.cshtml" }; 

    public MyViewEngine() 
    { 
     base.ViewLocationFormats = base.ViewLocationFormats.Union(NewViewFormats).ToArray(); 
    } 
} 

我RouteConfig.cs

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Panel", action = "Index", id = UrlParameter.Optional } 
     ); 

     ViewEngines.Engines.Add(new MyViewEngine()); 
    } 

我的视图文件夹;

enter image description here

我Controllers文件夹;

enter image description here

回答

1

MVC路线不是文件系统等基于旧式ASP.NET网站。所有的控制器都在编译时注册,并且路由只是选择具有匹配名称的控制器。控制器驻留在文件系统上的地方是无关紧要的。

+0

是的,我解决了我与地区的问题.. – yusuf 2013-05-02 09:20:29