C# 无法使MVC 5属性路由正常工作
我正在使用C#后端开发一个MVC5应用程序。我正在尝试获取更改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">
/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.