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

ASP.NET Core MVC:如何添加指向其他文件夹视图的链接

解决ASP.NET Core MVC跨控制器视图链接问题

你的问题出在误用了Razor Pages的标签助手——asp-page是给Razor Pages项目用的,而你的项目是MVC架构,应该用MVC专属的asp-controller和asp-action标签助手来生成跨控制器的链接。

修正后的链接代码

把原来的asp-page替换成asp-controller和asp-action,同时保留asp-route-id传递参数:

<td>
    <a asp-controller="Salaries" asp-action="Index" asp-route-id="@item.Id">View Salary Components</a> |
    <a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
    <a asp-action="Details" asp-route-id="@item.Id">Details</a> |
    <a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>

关键说明

  1. 控制器匹配:asp-controller="Salaries"指定要跳转的目标控制器为SalariesController,MVC会自动对应到Views下的Salaries文件夹视图。
  2. 动作方法匹配:asp-action="Index"指定调用该控制器下的Index动作方法,确保你的SalariesController里有接收id参数的Index方法,示例如下:
public IActionResult Index(int id)
{
    // 根据id获取薪资组件逻辑
    return View();
}
  1. 路由兼容性:你的默认路由{controller=Home}/{action=Index}/{id?}完全支持这种链接格式,生成的URL会是/Salaries/Index/[item.Id],符合路由规则。

排查要点

如果点击后还是没反应,检查:

  • SalariesController是否存在,且Index方法的参数名称是id(要和asp-route-id的名称一致)
  • 浏览器控制台是否有JS报错,或者右键查看链接地址确认是否生成了有效URL

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:02:43