Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 路由参数不为';我不能在mvc中工作。为什么?如何修复?_C#_Asp.net Mvc_Asp.net Mvc Routing_Visual Studio 2013 - Fatal编程技术网

C# 路由参数不为';我不能在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("{

我正在使用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}"
    );
路线

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 }
            );