我正在寻找一种方法,将问号后的URL中的变量转换为带斜杠的简单表示法。
例如: 我想输入这个链接:
http://localhost:50830/Controller/View?Name=Test
以这种形式进入浏览器
http://localhost:50830/Controller/View/Test
然后控制器应将“Test”识别为Name变量。 所以基本上这两个链接应该给出相同的结果。
这可能吗?
答案 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) { ... }
}