ASP MVC 5隐藏URL(路由)中的区域
本文关键字:区域 路由 MVC 隐藏 URL ASP | 更新日期: 2023-09-27 17:50:20
我有三个区域:tpl1 - tpl2 - tpl3
当我启动应用程序时,我选择使用哪个区域:
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" },
new[] { "LojaOnline.Controllers" }
).DataTokens.Add("area", "tpl1");
(数据令牌中的"tpl1")。添加是动态的)
Url为:http://localhost/tpl1/Home/Index
我需要隐藏URL中的区域名称。像这样:
Url为:http://localhost/Home/Index
我在tpl1AreaRegistration.cs
中有这个
context.MapRoute(
"tpl1_default",
"tpl1/{controller}/{action}/{id}",
new {controller="Home", action = "Index", id = UrlParameter.Optional }
);
但是如果我删除tpl1,应用程序不知道哪个控制器使用。
context.MapRoute(
"tpl1_default",
"{controller}/{action}/{id}",
new {controller="Home", action = "Index", id = UrlParameter.Optional }
);
据我所知,这在IIS中是不可能的。
当你给URL为http://localhost/Home/Index
。首先,它将连接到您的本地IIS,并在其中搜索应用程序名称为"Home
",并在其中搜索脚本页面或Web表单,根据您选择的Web应用程序。但实际上,根据您的URL,您已指定您的应用程序为tpl1。
所以你不能用http://localhost/Home/Index
代替http://localhost/tpl1/Home/Index
但是,是的,你可以隐藏Index
从URL在最后像http://localhost/tpl1/Home
。使用路由文件,你只能控制应用程序中的URL。