使用斜杠定义ASP.NET MVC路由

时间:2011-06-26 23:11:13

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

在像http://mysite.com/controller/action/123/name-of-article这样的网址中,有没有办法定义路线,以便'123 / name-of-article'部分作为字符串传递?

2 个答案:

答案 0 :(得分:13)

您可以制作通配符路线:

MapRoute("{controller}/{action}/{*id}")

答案 1 :(得分:0)

我不确定您的要求是什么,但您确定要将文章名称传递给控制器​​吗?你最好只传递ID然后从数据库中执行SELECT以获取名称吗?

如果你还想拥有像http://mysite.com/controller/action/123/name-of-article这样的网址 但只传入ID,你可以使用这样的路线

 routes.MapRoute(
               "MyNewRoute",            // Route name
               "articles/edit/{id}/{name}",       // URL
               new { controller = "Articles", action = "Edit", id = "" }, // Defaults
               new[] { "YourApp.UI.Controllers" }                       // Namespaces
             );

然后你的控制器动作

public ActionResult Edit(int id)
{

}