You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core MVC视图指定asp-controller未生效问题如何解决

问题原因

你在给asp-controller属性赋值时多带了Controller后缀,这是ASP.NET Core MVC Tag Helper使用时的常见误区。框架解析asp-controller属性时,会自动为输入的值拼接Controller后缀去匹配控制器类,你填写DealController的情况下,框架实际会尝试查找名为DealControllerController的控制器,匹配失败后就会 fallback 到当前视图所属的UserController,所以出现了你描述的现象。

解决方法

直接把asp-controller属性的值改成不带后缀的控制器名即可,修改后的表单代码如下:

<form asp-route-empname="@deal.Id" asp-controller="Deal" asp-action="DeleteDeal" method="post">
    <button type="submit">Delete</button>
</form>

其余排查点

如果修改后缀后问题仍然存在,可以按以下顺序排查:

  • 确认DealController下的DeleteDeal方法添加了[HttpPost]特性,和表单提交方式匹配
  • 如果你使用了区域(Area)功能,需要在表单上补充asp-area属性指定对应区域,否则会默认匹配根层级的控制器
  • 右键浏览器页面查看生成的表单action属性值,确认生成的路径是否符合预期,可以快速区分是前端Tag Helper渲染问题还是后端路由规则问题

内容的提问来源于stack exchange,提问作者Maksims

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 03:36:03