首页 > 解决方案 > 如何获取下拉列表值并通过 ActionLink 传递给控制器​​?

问题描述

我需要使用 Actionlink 将下拉列表的值发送到我的控制器。

我正在使用这段代码:

从控制器发送列表以查看:

ViewBag.Frecuencies = new SelectList(db.Frecuencies, "FrecuencyID", "Description");

在视图中显示列表:

 @Html.DropDownList("Description", (IEnumerable<SelectListItem>) ViewBag.Frecuencies,new { name="Frecuency"})

我想用 ActionLink 作为参数从下拉列表中发送值:

@ActionLink("ActionName","Controller",new {**ParameterName=DropdownValue**})

一些帮助?

标签: c#asp.netasp.net-mvcdrop-down-menu

解决方案


我认为不使用 JavaScript 就无法做到这一点。您必须从列表中获取选定的值,然后将其添加到生成的<a>标签中@Html.ActionLink()

首先,我会在这些Html辅助方法中添加一些 id。

@Html.DropDownList("Description", (IEnumerable<SelectListItem>)ViewBag.Frecuencies, new { name = "Frecuency", id = "Frecuency-id" })

@Html.ActionLink("ActionName", "Controller", new { paramName="", id="action-link-id"})

然后继续使用 JavaScript。以下是使用 jQuery 进行此操作的方法:

var selectedValue = $("#Frecuency-id").val();

$("#action-link-id").attr("paramName", selectedValue);

当然,每次您选择的值更改时,您仍然必须执行此代码。

var valueList = $("#Frecuency-id");

    valueList.on("change", function () {
        var selectedValue = $("#Frecuency-id").val();

        $("#action-link-id").attr("paramName", selectedValue);
    });

代码应该看起来有点像我上面描述的。


推荐阅读