我正在使用 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
只有第一个作品。
对于网页显示的第一个 url:
Results.Query: er
第二个显示:
Results.Query:
我正在关注此示例:添加控制器并且无法获取正确映射查询参数的路由。
我究竟做错了什么?
我已经尝试了很多东西,例如重命名query
为q
以查看是否保留了查询一词,但结果是相同的。