gpt4 book ai didi

c# - 动态网址路由

转载 作者:行者123 更新时间:2023-11-30 14:58:37 25 4
gpt4 key购买 nike

此应用在 RouteConfig.cs 中配置了多个路由。例如,我定义了以下两条路线:

routes.MapRoute(
name: "MyPage-Demo",
url: "pages/page-title/demo",
defaults: new { controller = "Root", action = "PageDemo" }
);

routes.MapRoute(
name: "MyPage",
url: "pages/page-title/{resource}",
defaults: new { controller = "Root", action = "Page", resource = UrlParameter.Optional }
);

有人访问的每个页面都有一个指向“演示”的链接。可以通过访问 http://localhost/pages/page-title 来访问页面。这很好用。

当用户单击“演示”链接时,他们将被重定向到位于 http://localhost/pages/page-title/demo 的页面。这很好用。

我的问题是演示页面可能引用了复杂的嵌套结构。该结构由 JavaScript、css、图像等组成。用于演示目的的内容。这些嵌套资源都找不到。但是,我不确定如何设置我的路由以说明这些嵌套文件。

我确信我需要更新 Controller 的 PageDemo 操作。但是,我不确定

a) 如何以允许不同结构的方式做到这一点

b) 如何更新我的路由配置以解决这些嵌套结构。

有没有办法做到这一点?实际上,我将有多个页面和多个演示。出于这个原因,我想要一些比硬编码方法更可重用的东西。

最佳答案

如果您只需要提供物理存储在路径中的文件,您应该能够忽略该路径,例如:

routes.IgnoreRoute("pages/page-title/demo/resources/{*resource}");

这将绕过 MVC 尝试将请求路由到 Controller 。

或者你可以通过文件扩展名:

routes.IgnoreRoute("{file}.js");
routes.IgnoreRoute("{file}.css");

(代码未经测试,但看起来您正在尝试在这里做类似的事情:) https://stackoverflow.com/a/3112192/486620

关于c# - 动态网址路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com