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

如何将Html.ActionLink的项目名称参数传递给Controller供图表视图使用

代码调整方案

1. 调整FirstView中的ActionLink代码

需要修正两个点:一是路由目标Action名称要和Controller里的方法名匹配,二是把项目名称作为参数传递,调整后代码如下:

@* 先获取当前项目名 *@
@var projectName = projectOverviewa.DisplayProject_Name_1;
@* 第二个参数要和Controller的方法名一致,你原来写的ChartForProject和Controller里的SecondViewForChart不匹配,注意修正 *@
@Html.ActionLink("View", "SecondViewForChart", new { projectName = projectName })

2. 调整Controller的Action代码

直接通过方法参数绑定接收前端传递的项目名即可,不需要依赖Session:

// 方法参数名要和ActionLink里传递的参数名完全一致,ASP.NET MVC会自动完成参数绑定
public ActionResult SecondViewForChart(string projectName)
{
      // 直接使用传递过来的项目名供图表调用
      string getName = projectName;

      return View();
}

关于Session存储是否合适的说明

不建议用Session存储该参数,原因如下:

  • 多标签页访问冲突:如果用户同时打开多个项目的图表页,后打开的项目名会覆盖Session中存储的值,导致先打开的页面图表数据错误
  • 过期问题:Session有默认过期时间,用户保存对应页面的书签后过段时间访问,Session丢失会直接触发报错
  • 设计合理性问题:单纯的页面跳转传参用URL查询参数即可,逻辑更简单清晰,也方便调试,用户还可以直接收藏对应项目的图表页面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 21:06:04