ASP.NET MVC 5中@Html.ActionLink无法跳转至目标页面的问题
问题排查与解决
你遇到的404错误核心原因及修复方案如下:
修正ActionLink的控制器参数
控制器类名为MyController,但在@Html.ActionLink和@Url.Action中,控制器名称需要去掉Controller后缀,正确写法如下:@Html.ActionLink("Reviews", "MyActionStuff", "My", null, null)对应的
Url.Action正确写法:@Url.Action("MyActionStuff", "My")你之前写的
"MyController"会让路由系统去寻找不存在的MyControllerController,直接导致404。修复控制器代码的语法错误
控制器方法里嵌套调用View()属于语法错误,修正后代码如下:public class MyController : Controller { public ActionResult MyActionStuff() { // 确保myModel已正确实例化 return View("~/Views/Shared/MyViewFolder/MyView.cshtml", myModel); } }这个错误虽不会直接导致控制器方法不触发,但会影响后续视图返回。
额外排查点
- 检查路由配置:确认
RouteConfig.cs(或Startup.cs中的路由配置)使用默认规则{controller}/{action}/{id},没有自定义路由拦截My/MyActionStuff的请求。 - 确认控制器命名空间:确保
MyController在项目默认的Controllers命名空间下,或路由配置已包含其所在的自定义命名空间。 - 确认Action权限:
MyActionStuff必须是public修饰(你的代码已满足),私有或受保护的Action无法被外部请求触发。
- 检查路由配置:确认
内容的提问来源于stack exchange,提问作者vegetta
相关产品推荐
相关产品推荐

