Asp.net mvc 2 带有dropdownlist中id值的Html.ActionLink

Asp.net mvc 2 带有dropdownlist中id值的Html.ActionLink,asp.net-mvc-2,drop-down-menu,actionlink,Asp.net Mvc 2,Drop Down Menu,Actionlink,我有一个下拉列表: 我有一个ActionLink: 我想要XXX中dropdownlist的值。 所以我想使用ActionLink中视图控件中的值。 用一种简单的方式能做到吗 谢谢 Filip您不能这样做,因为html帮助程序在服务器端执行,而下拉列表值在客户端可以更改。实现它的唯一方法是使用javascript。您可以注册下拉列表的onchange事件,并修改锚的href值: $(function() { $('#ddlNames').change(function() {

我有一个下拉列表:

我有一个ActionLink:

我想要XXX中dropdownlist的值。 所以我想使用ActionLink中视图控件中的值。 用一种简单的方式能做到吗

谢谢


Filip

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

$(function() {
    $('#ddlNames').change(function() {
        var value = this.value; // get the selected value
        // TODO: modify the value of the anchor
    });
});
这可能不是最好的解决方案,因为路由是在服务器端配置的,为了修改链接的值,您需要在客户端执行一些字符串操作

作为替代,您可以使用表单和提交按钮,而不是锚定。这样,下拉列表的选定值将自动发送到服务器,您不需要任何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" />
<% } %>

x、 选择名称,
新建选择列表(Model.NameList,“ID”,“Name”))%>

不要每次更改相关下拉列表时都修改锚定值,只需单击修改一次即可

使用剃须刀的示例:

@Html.DropDownList("DropDownFirstNames", new SelectList(Model.FirstNames, "ID", "Name"))
@Html.DropDownList("DropDownLastNames", new SelectList(Model.LastNames, "ID", "Name"))
@Html.ActionLink("Submit name", "ActionName", "ControllerName", null, new { @id = "SubmitName" })

<script type="text/javascript">
    $('#SubmitName').click(function () {
        var first = $('#DropDownFirstNames').val(); 
        var last = $('#DropDownLastNames').val();
        var path = '@Url.Content("~/ControllerName/ActionName")' + "?firstId=" + first + "+&lastId=" + last
        $(this).attr("href", path);
    });
</script>
@Html.DropDownList(“DropDownFirstNames”,新选择列表(Model.FirstNames,“ID”,“Name”))
@DropDownList(“DropDownLastNames”,新选择列表(Model.LastNames,“ID”,“Name”))
@ActionLink(“提交名称”、“ActionName”、“ControllerName”、null,新的{@id=“SubmitName”})
$(“#SubmitName”)。单击(函数(){
var first=$('#DropDownFirstNames').val();
var last=$('#DropDownLastNames').val();
var path='@Url.Content(“~/ControllerName/ActionName”)'+“?firstId=“+first+”+&lastId=“+last
$(this.attr(“href”,path);
});

只是澄清一下:您希望链接获取DDL的选定值吗?所以,每当DDL发生变化时,您希望链接的值发生变化吗?因为这需要javascript更新@Darin答案中的值。