将URL中的问号和变量(?id = 5)更改为asp.net MVC 4中的斜杠(/ 5)

时间:2014-08-29 18:02:40

标签: asp.net-mvc asp.net-mvc-4 variables url

我正在寻找一种方法,将问号后的URL中的变量转换为带斜杠的简单表示法。

例如: 我想输入这个链接:

http://localhost:50830/Controller/View?Name=Test

以这种形式进入浏览器

http://localhost:50830/Controller/View/Test

然后控制器应将“Test”识别为Name变量。 所以基本上这两个链接应该给出相同的结果。

这可能吗?

1 个答案:

答案 0 :(得分:2)

您需要为此定义路线。

例如:

routes.MapRoute(
                "Test",                                              // Route name
                "{controller}/{action}/{name}",                           // URL with parameters
                new { controller = "Controller", action = "View", Name = "" }  // Parameter defaults
                );

请注意Name参数。默认情况下,MVC路由设置为查找Id参数。

对应行动:

public ActionResult View(string name) 
{
...
}

如果你正在使用MVC 5,你也可以使用Attributes来定义路线:

[RoutePrefix("Home")]
public class HomeController : Controller
{
    [Route("view/{name}")]
    public ActionResult View(string name) { ... }
}