ASP.NET MVC应用程序。我有一个Html.DropDownList。我想在选择更改时重定向到另一个控制器,并希望所选下拉列表项的键作为URL中的参数。
我应该怎么做?
由于
答案 0 :(得分:3)
您必须使用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>
答案 1 :(得分:2)
您需要使用Javascript执行此操作;我建议使用jquery。此外,将下拉列表设置为控制器/操作URL的get和action方法。然后设置click事件以发布表单。
因此,您的HTML将类似于:
<form id="myForm" action="/Controller/Action" method="get">
<select id="mySelect">...</select>
</form>
在jquery中有类似的东西:
$('#mySelect').change(function() { $('#myForm').submit(); });
注意,您可以使用Html.Form()帮助程序来创建表单。此外,我建议在表单上有一个提交按钮,您可以使用javascript隐藏它。那些已经禁用JS的人仍然可以提交表单。