【问题标题】:MVC Routing Inside a Folder文件夹内的 MVC 路由
【发布时间】:2016-02-29 10:51:02
【问题描述】:

我已经构建了一个标准的 MVC 应用程序,其中包含控制器和视图以及以下路由:-

routes.MapRoute
(
  name: "PageNumber",
  url: "{controller}/{action}/page-{pageNumber}",
  defaults: new { controller = "Home", action = "PageNumber" }
);
routes.MapRoute
(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);

因为这是一个后端系统,所以前面会有一个基本的HTML网站。这意味着我需要将我的网站路由到一个子文件夹中,以便 URL 看起来像这样:-

SubFolder/Controller/Action/{id}

如何在不更改所有硬编码链接以包含此子文件夹的情况下执行此操作。我不能为此使用 MVC 区域,所以想知道是否有一种方法可以更改路由以自动预置 URL 的 SubFolder 位?

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc model-view-controller routing asp.net-mvc-areas


    【解决方案1】:

    你可以开辟一条新路线:

     routes.MapRoute(
                name: "Subfolder",
                url: "Subfolder/{controller}/{action}/{id}",
                defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
            );
    

    但是,您不应该对链接进行硬编码,如果您将来计划替换基本的 HTML 页面,您可以使用@Html.ActionLink 为您生成锚标记。

    【讨论】:

    • 我会试试这个,让你知道我要去哪里!感谢您的建议!
    • 完美运行!谢谢。将我的链接更改为 href="@Url.Action()">,因为我们在 <a></a> 链接中嵌套了 HTML。
    猜你喜欢
    • 2016-03-02
    • 2014-10-05
    • 1970-01-01
    • 2011-07-22
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 2016-09-02
    相关资源
    最近更新 更多