1

我有一个类似http://mysite.ef.com/mine的网址 。它在内部需要重定向到

http://mysite.ef.com/Product/ViewProduct/2。最后一个参数(即 2)必须从第一个 url 的最后一个参数(在这种情况下,值是“我的”)通过访问数据库来查看它是否有效,如果有效则获取正确的 id。我们如何使用 Url Routing 来完成它。我可以通过使用自定义约束来验证它,但是如何用这个获取的值重写 url。

问候拉加夫

4

1 回答 1

0

让您的路由配置如下所示:

routes.MapRoute(
      name: "ProductRouting",
      url: "{id}",
      defaults: new { controller = "Product", action = "ProductView", id = UrlParameter.Optional },
      namespaces: new[] { "YourApp.Controllers" }
);

但请注意,因为通常的默认路由看起来像这样,并且如果您只传递一个通常仅指定控制器的参数,但在您的情况下它将指定产品 ID。

routes.MapRoute(
      name: "Default",
      url: "{controller}/{action}/{id}",
      defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional },
      namespaces: new[] { "YourApp.Controllers" }
);

如果您以某种方式需要它来执行查找并计算出mine与 product 相对应的内容2,则您ProductView ActionMethod需要接收一个字符串并执行一个简单的查找。

于 2013-11-14T09:24:50.707 回答