ASP.NET MVC应用程序。我有一个Html.DropDownList。当选择被改变时,我想重定向到另一个控制器,并希望所选下拉列表项的键作为URL中的参数。当下拉列表发生变化时重定向到控制器/视图
我应该怎么办?
谢谢
ASP.NET MVC应用程序。我有一个Html.DropDownList。当选择被改变时,我想重定向到另一个控制器,并希望所选下拉列表项的键作为URL中的参数。当下拉列表发生变化时重定向到控制器/视图
我应该怎么办?
谢谢
你需要用Javascript来做到这一点;我会推荐使用jQuery。另外,将下拉列表放在一个表单中,获取和操作控制器/操作URL的方法。然后设置单击事件以发布表单。
所以,你的HTML将是这样的:
<form id="myForm" action="/Controller/Action" method="get">
<select id="mySelect">...</select>
</form>
而在jQuery的是这样的:
$('#mySelect').change(function() { $('#myForm').submit(); });
注意,你可以使用的Html.Form()助手来创建表单。另外,我建议在表单上提供一个提交按钮,您可以使用javascript隐藏该按钮。然后,JS被禁用的人仍然可以提交表单。
你必须使用JavaScript来做到这一点:
<select onchange="OnChangeEvent(this);">
<option value="1">option 1</option>
<option value="2">option 2</option>
</select>
<script type="text/javascript">
<!--
function OnChangeEvent(dropDownElement){
var selectedValue = dropDownElement.options[dropDownElement.selectedIndex].value;
document.location = "/some/mvc/route/" + selectedValue;
}
//-->
</script>
如果你使用jQuery,使用克里斯Shaffers解决方案 – JonoW 2009-10-07 11:11:46