stevenjin 2024-07-25 10:04 采纳率: 97.3%
浏览 0
已结题

@Html.ActionLink传递参数失败

@Html.ActionLink传递参数失败,ProductView中没有p1传递的值。生成的页面也没有带参数


@Html.ActionLink(@product.Name,"ProductView","Home",new{p1=@product.No}, new {@name="egg",@style="width:8rem", @class = "input-group-addon d-block my-auto fw-bold" })

public IActionResult ProductView(int p1)
    {}
  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-25 10:04
    关注

    引自免费微信小程序:皆我百晓生

    从你的问题描述来看,你在使用ASP.NET MVC的 @Html.ActionLink 方法时遇到了问题,你尝试传递参数给 ProductView 动作方法,但是在生成的页面上并没有看到传递的参数。首先,我们需要确认一些可能的问题和解决方案。

    首先,你的 @Html.ActionLink 使用方法看起来是正确的。它会生成一个链接,当点击时将会执行 Home 控制器的 ProductView 动作方法,并且尝试传递一个名为 p1 的参数,其值应该是 @product.No。这是一个基本的用法,理论上应该能够正常工作。

    然而,有几个可能的问题需要注意:

    1. @product.No 是否确实包含有效的值?你可以在调试时检查 @product.No 的值是否是你期望的。
    2. ProductView 动作方法是否在 Home 控制器中正确定义?确认你的控制器中确实有名为 ProductView 的动作方法,并且它接受一个名为 p1 的整数参数。
    3. URL路由问题。确认你的路由配置是否允许你以这种方式传递参数。默认情况下,ASP.NET MVC 应该能够处理这种简单的路由,但是如果你自定义了路由规则,可能会影响到参数的传递。
    4. 参数名称匹配问题。确认你的动作方法中参数名 p1 与你在 ActionLink 中使用的名称相匹配。

    如果以上都没有问题,那么问题可能在于你的页面没有正确地显示参数。你可以在 ProductView 动作方法中添加一些代码来检查 p1 参数的值,例如:

    public IActionResult ProductView(int p1)
    {
        // 检查 p1 的值
        System.Diagnostics.Debug.WriteLine("ProductView received p1: " + p1);
        // 其他代码...
    }
    

    然后你可以查看你的网站的调试输出,看看是否收到了正确的参数值。如果你在控制器中没有看到任何输出,那可能就是参数没有正确传递的问题。如果看到了输出,那就可能是你在页面上显示参数的方式有问题。这种情况下,你需要检查你的视图代码,看看是否正确地从控制器获取并显示了参数值。

    如果这些都没有解决你的问题,你可能需要提供更多的代码和上下文信息以便更准确地诊断问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 创建了问题 7月25日

悬赏问题

  • ¥15 网络分析设施点无法识别
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决
  • ¥100 基于SVM的信息粒化时序回归预测,有偿求解!
  • ¥15 物体组批优化问题-数学建模求解答
  • ¥15 微信原生小程序tabBar编译报错
  • ¥350 麦克风声源定位坐标不准
  • ¥15 apifox与swagger使用
  • ¥15 egg异步请求返回404的问题