针对不同ActionResults的自定义网址?

时间:2015-03-05 22:46:25

标签: c# asp.net asp.net-mvc iis

我正在将旧网站迁移到新的ASP .Net MVC网站。旧网站的网址命名方案非常糟糕。我很乐意忽略旧的方式,只是创建新的网址,然而,很多链接指向SEO的旧链接。因此,我必须保持较旧的网址。

所以让我们说这是旧网址: web.com/items/products/Hello-World-Hyphens

如何在MVC上输入?

我有ProductsController:

ActionResult HelloWorldHyphens() { return View(); }

将输出到web.com/products/HelloWorldHyphens

但是,我需要用旧方式编写。以/ items /开头,并在控制器名称中包含连字符。

我有办法做这样的事吗?

[OutputUrl="/items/products/Hello-World-Hyphens"]
ActionResult HelloWorldHyphens()

1 个答案:

答案 0 :(得分:1)

当您迁移到新的ASP MVC网站时,您可以利用MVC 5中的属性路由。

如果在注册路线时添加属性路由:

routes.MapMvcAttributeRoutes();

然后你可以在方法上添加路线:

[Route("/items/products/Hello-World-Hyphens")]
ActionResult HelloWorldHyphens()