выберите, какой контроллер использовать в форме ASP.NET MVC - PullRequest
0 голосов
/ 07 декабря 2010

У меня есть поисковая форма в моем приложении MVC, где я выбираю в выпадающем списке, в каком отделе я хочу искать, и текстовое поле ввода, по которому я хочу искать.

, когда я выбираю отдел в моем выпадающем спискеЯ хочу, чтобы контроллер форм сменил выбранное значение.

Допустим, у меня есть следующие элементы в выпадающем списке: «Клиенты», «Продукты», «Счета»

, когда я выбираю «Клиенты».«В моем выпадающем списке я хочу, чтобы мой Html.BeginFrom выглядел так:

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

, а когда я выбираю« Продукты », я хочу, чтобы« Клиенты »менялись на« Продукты ».

Ответы [ 2 ]

0 голосов
/ 07 декабря 2010

Я согласен, что это не лучший способ приблизиться к вещам, однако, если вам все еще нужно делать это таким образом, тогда вам понадобится простое утверждение 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>

Проверьте ответ на этот вопрос для более подробной информации

0 голосов
/ 07 декабря 2010

Обычно это не так, как вы делаете.

Если вам нужно, чтобы в зависимости от заданного значения раскрывающегося списка происходили две разные вещи, вы должны обработать логическую диспетчеризацию внутри контроллера.

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

     if( actionType == "Customers" )
          DoSomethingDifferent();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...