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

如何从Bootstrap菜单项向ASP.NET MVC控制器传递参数

实现方案

你的需求完全可以实现,但是你预想的asp-action="Index(0)"写法不符合ASP.NET Core Tag Helper的语法规则,正确实现步骤如下:

1. 修改前端下拉菜单代码

使用asp-route-[参数名]属性传递自定义参数,示例代码:

<div class="dropdown-menu" aria-labelledby="navbarDropdown">
    <a class="dropdown-item" asp-controller="Question" asp-action="Index" asp-route-chapterId="0">Salesperson questions - Chapter 1</a>
    <a class="dropdown-item" asp-controller="Question" asp-action="Index" asp-route-chapterId="1">Salesperson questions - Chapter 2</a>
</div>

2. 调整QuestionController的Index方法

在Action中声明对应参数接收前端传递的数值即可:

// 位于QuestionController.cs中
public IActionResult Index(int chapterId = 0)
{
    // 这里可以根据chapterId的值加载对应章节的试题内容
    // chapterId为0对应第一章,为1对应第二章
    return View();
}

补充说明

如果你使用的是ASP.NET Core默认路由规则{controller=Home}/{action=Index}/{id?},也可以直接把参数名改为id,对应前端写asp-route-id="0",不需要额外修改路由配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:54:03