1

我正在用 ASP.NET MVC 建立一个网上商店。我想要完成的是网上商店根目录中所有产品的列表。换句话说,我想要一个 SEO 优化的友好 URL,其产品名称直接位于基本 URL 之后。例如:

myexamplewebshop.com/beautiful-red-coat

myexamplewebshop.com/yellow-t-shirt

如果您单击这些链接之一,您将看到产品的详细信息页面。我想我需要在某处更改路由代码中的某些内容才能使其正常工作。谁能给我一个如何做到这一点的例子?任何帮助将不胜感激。

4

2 回答 2

2

添加如下路线:

routes.MapRoute(
    "SEO_Product", // Route name
     "{seoterm}",
 new { controller = "Product", action = "LookupBySEO" }
);

然后在您的产品控制器中添加方法:

public ActionResult LookupBySEO(string seoterm) {

    // convert URL encoded seoterm into product name

    // lookup product by name

}

此路由应添加在默认路由之前。注意:您站点上的所有其他页面都不能再位于根级别,即 /aboutus、/home 等。

于 2013-03-07T18:58:47.123 回答
1

您需要向RegisterRoutes 函数添加自定义路由。

        routes.MapRoute(
                "ProductFriendly", // Route name
                "{productId}", // URL with parameters
                new {  controller = "YourProductControllerName", action = "YourProductActionName"  } // Parameter defaults
        );

将映射到YourProductControllerName被调用的动作YourProductActionName

public ActionResult YourProductActionName(string productId)
{
  // your code goes here...
}
于 2013-03-07T18:53:49.180 回答