选择在ASP.NET MVC表单中使用哪个控制器

时间:2010-12-07 15:12:25

标签: asp.net-mvc model-view-controller asp.net-mvc-2

我在我的mvc应用程序中有一个搜索表单,我在下拉列表中选择我要搜索的部门,以及关于我要搜索的内容的文本输入。

当我在下拉列表中选择一个部门时,我希望将控制器更改为所选值。

让我说我有这些项目我的下拉列表:“客户”,“产品”,“发票”

当我在下拉列表中选择“客户”时,我希望我的Html.BeginFrom看起来像这样:

<% using (Html.BeginForm("Customers", Request.QueryString["Search"], "Search", FormMethod.Get))
       { %>

当我选择“产品”时,我希望“客户”更改为“产品”。

2 个答案:

答案 0 :(得分:0)

这通常不是你做事的方式。

如果您需要根据下拉列表的值发布两个不同的事情,您应该处理Controller内部的逻辑调度。

public ActionResult DoSomething(string actionType )
{
     if( actionType == "Products" )
          DoSomething();

     if( actionType == "Customers" )
          DoSomethingDifferent();
}

答案 1 :(得分:0)

我同意这不是解决问题的最好方法,但是如果你仍然需要这样做,那么你需要一个简单的jquery语句。

基本上处理表单的onSubmit操作(或下拉列表的onChange - 两者都有效)并根据下拉列表的值更改表单的操作

这样的事情应该有效:

<% using (Html.BeginForm()) { %>
  <%=Html.DropDownListFor( x => x.DepartmentList ) %>
  <input type='submit' value='submit'/>
<% } %>

<script type="text/javascript">
 $(function(){
   $('#DepartmentList').change(function(){
      $('form').attr('action', $('#DepartmentList option:selected').val() );
   });
 });
</script>

查看this question的答案以获取更多详情