我正在使用visual studio 2013的新.net空项目和mvc,我有这些......
控制器:
public string Search()
{
return HttpUtility.HtmlEncode("Search.");
}
public string Results(string query)
{
return HttpUtility.HtmlEncode("Results." + "Query: " + query);
}
路由:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Search", action = "Search", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Search",
url: "{controller}/{action}/{query}"
);
问题是
中的查询参数url: "{controller}/{action}/{query}"
无法正确映射。
如果我转到这两个网址:
https://localhost:44300/Search/Results/?query=er
https://localhost:44300/Search/Results/er
只有第一部作品。
对于网页显示的第一个网址:
Results.Query: er
第二个显示:
Results.Query:
我正在关注此示例:Adding a controller并且无法获取正确映射查询参数的路由。
我做错了什么?
我尝试过很多方法,比如将query
重命名为q
,看看是否保留了单词查询,但结果是一样的。
答案 0 :(得分:0)
确定。修好了。
默认路线错误。
正确的是:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{query}",
defaults: new { controller = "Search", action = "Search", query = UrlParameter.Optional }
);