Asp.net mvc 2 带有dropdownlist中id值的Html.ActionLink
我有一个下拉列表: 我有一个ActionLink: 我想要XXX中dropdownlist的值。 所以我想使用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() {
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答案中的值。