下拉列表更改时重定向到控制器/视图

时间:2009-10-07 10:45:36

标签: asp.net-mvc

ASP.NET MVC应用程序。我有一个Html.DropDownList。我想在选择更改时重定向到另一个控制器,并希望所选下拉列表项的键作为URL中的参数。

我应该怎么做?

由于

2 个答案:

答案 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的人仍然可以提交表单。