带有下拉列表中id值的Html.ActionLink

Fil*_*lip 5 actionlink asp.net-mvc-2 drop-down-menu

我有一个下拉列表:<%= Html.DropDownList("ddlNames",新的SelectList(Model.NameList,"ID","Name"))%>

我有一个ActionLink:<%:Html.ActionLink("编辑","编辑","成员",新{area ="MembersArea",id = XXX},null)%>

我想要XXX中下拉列表的值.所以我想在ActionLink的视图中使用控件的值.这有可能以简单的方式进行吗?

谢谢,

菲利普

Dar*_*rov 3

您不能这样做,因为 html 帮助程序在服务器端执行,而下拉值可以在客户端更改。实现它的唯一方法是使用 javascript。您可以注册下拉菜单的 onchange 事件并修改锚点的 href 值:

$(function() {
    $('#ddlNames').change(function() {
        var value = this.value; // get the selected value
        // TODO: modify the value of the anchor
    });
});
Run Code Online (Sandbox Code Playgroud)

这可能不是最好的解决方案,因为路由是在服务器端配置的,为了修改链接的值,您需要在客户端进行一些字符串操作。

作为替代方案,您可以使用表单和提交按钮而不是锚点。这样,下拉列表中选定的值将自动发送到服务器,并且您不需要任何 JavaScript:

<% using (Html.BeginForm("Edit", "Members", new { area = "MembersArea" })) { %>
    <%= Html.DropDownListFor(x => x.SelectedName, 
        new SelectList(Model.NameList, "ID", "Name"))%>
    <input type="submit" value="Edit" />
<% } %>
Run Code Online (Sandbox Code Playgroud)