我有三个方面:tpl1 - tpl2 - tpl3
当我启动应用程序时,我选择使用哪个区域:
routes.MapRoute(
"Default",
"{controller}/{action}",
new { controller = "Home", action = "Index" },
new[] { "LojaOnline.Controllers" }
).DataTokens.Add("area", "tpl1");
(DataTokens.Add中的“tpl1”是动态的。)
网址是:http://localhost/tpl1/Home/Index
我需要隐藏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 }
);
答案 0 :(得分:1)
据我所知,在IIS中它是不可能的。
当您将网址设为http://localhost/Home/Index
时。
首先,它将连接到您的本地IIS,并在其中搜索应用程序名称为" Home
"在里面,它将根据您选择的Web应用程序搜索脚本页面或webforms。但实际上根据您的网址,您已将应用指定为 tpl1 。
因此,您无法使用http://localhost/Home/Index
代替http://localhost/tpl1/Home/Index
但是,您可以在结尾处隐藏Index
,例如http://localhost/tpl1/Home
。
使用Route文件,您只能控制应用程序内的URL。