【问题标题】:ASP MVC 5 Hide Area in URL (Routes)URL(路由)中的 ASP MVC 5 隐藏区域
【发布时间】:2015-08-04 10:52:48
【问题描述】:

我有三个区域: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 }
            );

【问题讨论】:

标签: c# asp.net asp.net-mvc routes asp.net-mvc-5


【解决方案1】:

据我所知,在 IIS 中这是不可能的。

当您将 URL 指定为 http://localhost/Home/Index 时。 首先,它将连接到您的本地 IIS,并在其中搜索应用程序名称为“Home”,并在其中根据您选择的 Web 应用程序搜索脚本页面或网络表单。但实际上根据您的 URL,您已将应用程序指定为 tpl1

所以你不能用http://localhost/Home/Index代替http://localhost/tpl1/Home/Index

但是是的,您可以像 http://localhost/tpl1/Home 一样在末尾的 URL 中隐藏 Index。 使用路由文件,您只能控制应用程序内部的 URL。

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多