gpt4 book ai didi

c# - 如何在 asp.net mvc3 中为特定的 Controller 和 Action 创建 url 路由

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:54 25 4
gpt4 key购买 nike

我在 Asp.net mvc3 应用程序中工作。我已经为这样的产品详细信息页面创建了 url

routes.MapRoute(
"ProductDetail",
"{category}/{title}-{id}",
new { controller = "ProductDetail", action = "Index" }
);

对于使用这个的其他 Controller

routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

以下代码创建此 url

www.example.com/Shoes/blackshoes-100

现在的问题是,如果添加任何其他 Controller 和操作名称,我想将此 url 用于 ProductDetail 页面,它将像这样重定向到 ProductDetail 页面

www.example.com/Home/Index-100

我如何限制 ProductDetail 页面的这个 url?

这样做是正确的方法吗?

我想隐藏 Productdetail 页面的 Controller 和 Action。

每个产品的类别、标题和 ID 值都在变化。

最佳答案

您必须为您拥有的任何其他页面定义路由,并在映射产品详细信息路由之前映射这些路由。然后路由机制会先找到它们并使用它们。

当然,您不必为每个 Action 都映射路线。您可以为不同的 Controller 创建一些前缀,如下例所示,以捕获 Home Controller 操作的所有路由:

routes.MapRoute(
"Home",
"Home/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);

关于c# - 如何在 asp.net mvc3 中为特定的 Controller 和 Action 创建 url 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15020041/

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