gpt4 book ai didi

asp.net-mvc - 使用 catchall 通配符重定向到 Controller (但使用不同的主 Controller )

转载 作者:行者123 更新时间:2023-12-02 02:38:29 25 4
gpt4 key购买 nike

我有一个问题,我想根据它的来源显示不同的 View (不同的母版页),但不知道从哪里开始...

我有几个路由可以捕获包含不同结构的各种不同类型的 url。

在下面的代码片段中,我有一个产品路线,然后我有一个也可以转到产品页面的合作伙伴网站路线,但假设这个合作伙伴是百事可乐,他们希望在母版页上展示他们的品牌,而不是我们自己的默认样式。比方说我去 products/cola.htm .这应该转到与 partners/pepsi/products/cola.htm 相同的 url ,并且 PartnerRedirect 将能够处理基于通配符的 url,方法是将 url 通配符(在本例中为“products/cola.htm”)转换为 Controller 操作,然后转发用户,(但只需更改 View 中的母版页)。

routes.MapRoute(
"Product",
"products/{product}.htm",
new { controller = "Product", action = "ShowProduct" }
);

routes.MapRoute(
"ProductReview",
"products/{product}/reviews.htm",
new { controller = "Product", action = "ShowProductReview" }
);

routes.MapRoute(
"Partner",
"partners/{partner}/{*wildcard}",
new { controller = "Partners", action = "PartnerRedirect" }
);

这可能吗?如果是这样,怎么做到的?

非常感谢。

最佳答案

为什么不在您的合作伙伴 Controller 中设置一个 cookie 来指示您要显示的合作伙伴,然后重定向到路由的通配符部分。这样您就可以为所有后续页面浏览显示相同的合作伙伴布局。

我不知道这是否是您要找的,但这可能是一个选择。

关于asp.net-mvc - 使用 catchall 通配符重定向到 Controller (但使用不同的主 Controller ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/237440/

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