在我的全局asax文件中,我想映射一个这样的路由:
http://domain.com/add/link?url=http%3A%2F%2Fgoogle.com
然后使用名为Add。
的动作使用我的LinkController捕获它我这样做吗?
global.asax->
routes.MapRoute(
"AddLink",
"Add/Link?{url}",
new { controller = "Link", action = "Add" }
);
LinkController->
public string Add(string url)
{
return url; // just want to output it to the webpage for testing
}
??这似乎不起作用。我究竟做错了什么?谢谢!
答案 0 :(得分:15)
ASP.Net MVC将自动绑定查询字符串中的参数;你不需要把它放在路线上。
您的路线可以简单地
routes.MapRoute(
"AddLink",
"Add/Link",
new { controller = "Link", action = "Add" }
);
答案 1 :(得分:0)
显示mvc源代码ValueProviderFactories。
namespace System.Web.Mvc {
using System;
public static class ValueProviderFactories {
private static readonly ValueProviderFactoryCollection _factories = new ValueProviderFactoryCollection() {
new FormValueProviderFactory(),
new RouteDataValueProviderFactory(),
new QueryStringValueProviderFactory(),
new HttpFileCollectionValueProviderFactory()
};
public static ValueProviderFactoryCollection Factories {
get {
return _factories;
}
}
}
}