MVC设定默认路由为指定的Area下的某个action
程序员文章站
2023-12-12 21:33:22
mvc中,一般的情况下,使用ide工具帮我们生成的代码,在路由注册的时候:
public static void registerroutes(routecoll...
mvc中,一般的情况下,使用ide工具帮我们生成的代码,在路由注册的时候:
public static void registerroutes(routecollection routes) { routes.ignoreroute("{resource}.axd/{*pathinfo}"); routes.maproute( name: "default", url: "{controller}/{action}/{id}", defaults: new { controller = "webshow", action = "list", id = urlparameter.optional } ); }
默认给的路由地图 我们在default:中去配置 默认是又那个控制器返回action。
这样形如: 这样,会默认使用默认的view文件夹中去找对应的响应model页面;
但是当项目规模庞大,使用了mvc提供的area模块快的规划,又要让area块下某一个页面作为默认页面时,那就需要把route默认的路由去转到我们指定area下;要用到routecollection 的datatokens方法。
举个例子:area下有注册一个admin块
public class adminarearegistration : arearegistration { public override string areaname { get { return "admin"; } } public override void registerarea(arearegistrationcontext context) { context.maproute( "admin_default", "admin/{controller}/{action}/{id}", new { controller = "login", action = "index", id = urlparameter.optional } //默认路径是login控制器,和index action ); } }
如果要让默认到admin下指定的。那么registerroutes方法需要给routes路由到area 下的admin块;
public static void registerroutes(routecollection routes) { routes.ignoreroute("{resource}.axd/{*pathinfo}"); routes.maproute( "default", "{controller}/{action}/{id}", new { controller = "login", action = "index", id = urlparameter.optional }, //这里要和admin块下的默认控制器和action一样 new[] { "gta.cms.site.web.areas.admin.logincontroller" }// 这个是你控制器所在命名空间 ).datatokens.add("area","admin"); }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接