如何使用"?"路由查询字符串 以及如何处理它

Ian*_*vis 7 asp.net-mvc asp.net-mvc-2

在我的全局asax文件中,我想映射一个这样的路由:

http://domain.com/add/link?url=http%3A%2F%2Fgoogle.com
Run Code Online (Sandbox Code Playgroud)

然后使用我的LinkController和名为Add的操作捕获它.

我这样做吗?

global.asax->

routes.MapRoute(
    "AddLink",
    "Add/Link?{url}",
    new { controller = "Link", action = "Add" }
);
Run Code Online (Sandbox Code Playgroud)

LinkController->

public string Add(string url)
{
    return url; // just want to output it to the webpage for testing
}
Run Code Online (Sandbox Code Playgroud)

?? 这似乎不起作用.我究竟做错了什么?谢谢!

SLa*_*aks 15

ASP.Net MVC将自动绑定查询字符串中的参数; 你不需要把它放在路线上.

你的路线可以简单

routes.MapRoute(
    "AddLink",
    "Add/Link",
    new { controller = "Link", action = "Add" }
);
Run Code Online (Sandbox Code Playgroud)