在像http://mysite.com/controller/action/123/name-of-article
这样的网址中,有没有办法定义路线,以便'123 / name-of-article'部分作为字符串传递?
答案 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)
{
}