C# 路由参数不为';我不能在mvc中工作。为什么?如何修复?
我正在使用visual studio 2013新的.net空项目和mvc,我有这些 控制器:C# 路由参数不为';我不能在mvc中工作。为什么?如何修复?,c#,asp.net-mvc,asp.net-mvc-routing,visual-studio-2013,C#,Asp.net Mvc,Asp.net Mvc Routing,Visual Studio 2013,我正在使用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("{
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}"
);
路线:
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}"
无法正确映射
如果我转到这两个URL:
https://localhost:44300/Search/Results/?query=er
https://localhost:44300/Search/Results/er
只有第一个有效
对于网页显示的第一个url:
Results.Query: er
Results.Query:
第二个显示:
Results.Query: er
Results.Query:
我遵循以下示例:并且无法获得正确映射查询参数的路由
我做错了什么
我试过很多方法,比如将query
重命名为q
,看看单词query是否被保留,但结果是一样的。好的。修好了
默认路线是错误的
正确答案是:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{query}",
defaults: new { controller = "Search", action = "Search", query = UrlParameter.Optional }
);