Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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 5属性路由正常工作_C#_Asp.net Mvc 5 - Fatal编程技术网

C# 无法使MVC 5属性路由正常工作

C# 无法使MVC 5属性路由正常工作,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,我正在使用C#后端开发一个MVC5应用程序。我正在尝试获取更改/Controller/Action?参数=值显示为/Controller/Action/value 目前,我在页面设置上有一个操作链接,希望能够查看用户的个人资料信息: @{ var test = new RouteValueDictionary {{"username", "testman"}}; } <h2>@ViewBag.Title</h2> <div class="row">

我正在使用C#后端开发一个MVC5应用程序。我正在尝试获取更改
/Controller/Action?参数=值
显示为
/Controller/Action/value

目前,我在页面设置上有一个操作链接,希望能够查看用户的个人资料信息:

@{ var test = new RouteValueDictionary {{"username", "testman"}}; }

  <h2>@ViewBag.Title</h2>
  <div class="row">
    <div class="col-md-2" style="border-right:1px solid #EEE; min-height: 250px;">
        Sidebar 1
    </div>
    <div class="col-md-8">
        <a href="@Url.Action("Test","Home",test)">test link</a>
    </div>
    <div class="col-md-2" style="border-left:1px solid #EEE; min-height: 250px;">
        Sidebar 2
    </div>
</div>
我添加了
routes.mapmvcattributteroutes()到我的
RouteConfig.cs
文件

如果我没有将
[Route(“Test/{username}”)]
属性添加到我的操作中,则链接呈现如下:
Home/Test?username=testman
。如果我添加了链接呈现给我喜欢的属性:
Home/Test/testman

不幸的是,当我点击链接时,我遇到了服务器500错误,这就是我被卡住的地方:

No matching action was found on controller '<project>.Controllers.HomeController'.
This can happen when a controller uses RouteAttribute for routing, but no action on 
that controller matches the request.
在控制器“.Controllers.HomeController”上找不到匹配的操作。
当控制器使用RouteAttribute进行路由,但未对其执行任何操作时,可能会发生这种情况
该控制器与请求匹配。
为了好玩,我甚至尝试创建一个明确的ActionResult,看看我是否可以得到一些不同的东西,但没有运气

我显然错过了什么…谁能帮我走上正轨


谢谢

如果删除
RequireRequestValue
属性,会发生什么情况?这告诉您的路由必须在URL中存在请求值(
?username=
)。你的属性路由解决方案没有提供它,因此路由无法匹配。哎呀,就是这样。我对自己一开始没有尝试过这一点感到惊讶。万分感谢;第二双眼睛太有用了!
No matching action was found on controller '<project>.Controllers.HomeController'.
This can happen when a controller uses RouteAttribute for routing, but no action on 
that controller matches the request.