2016-01-07 4 views
0

У меня есть установка MVC5 с двумя выпадающими списками, которые через Javascript автоматически отправляются при выборе значения. Они в настоящее время в той же форме, поэтому я хотел бы иметь их представить различные действия на моем BackendНесколько Отправить из раскрывающихся списков в одной форме

Вид:

<div class="panel-body"> 
    @using (Html.BeginForm("", "BrugerSession")) 
    { 
     @Html.AntiForgeryToken() 
     <div class="row"> 
       <div class="col-md-6"> 
       @Html.LabelFor(model => model.Emails) 
       @Html.DropDownListFor(x => x.ValgtEmail, Model.Emails, "Vælg Email") 
      </div> 
      <div class="col-md-6"> 
       @Html.LabelFor(model => model.Printere) 
       @Html.DropDownListFor(x => x.ValgtPrinter, Model.Printere) 
      </div> 
     </div> 
    } 
</div> 

JavaScript

$(document).ready(function() { 
    $("#ValgtEmail").change(function() { 
     $(this).closest('form').trigger('submit'); 
    }); 
}); 

$(document).ready(function() { 
    $("#ValgtPrinter").change(function() { 
     $(this).closest('form').trigger('submit'); 
    }); 
}); 

Хитрость здесь в том, что Я использую How do you handle multiple submit buttons in ASP.NET MVC Framework? для поддержки нескольких целевых объектов в Backend.

Почему главный вопрос: может ли метод Javascript Trigger передавать данные в режиме propper, поэтому он будет работать с решением из вышеуказанной ссылки?

Я пробовал посмотреть в http://api.jquery.com/trigger/ Документация и есть поддержка дополнительных параметров. Но я знаю, как отформатировать Javascript для достижения того, что мне нужно.

Update:

Я никогда не удалось получить эту работу. Вместо этого я окружил каждый Select своей собственной формой.

ответ

0

Надеюсь, мой ответ вам поможет. Вы можете использовать JQuery AJAX.

Первый выпадающий

$("#dropdown1").change(function(){ 
    $.ajax({ 
     url: '/ControllerName/Action1', 
     data: { parm1:parm1 }, 
     success: function() { 
     // Success function 
     }, 
     error: function() { 
     // Error message 
     } 
    }); 
}); 

Второе падение вниз

$("#dropdown2").change(function(){ 
    $.ajax({ 
     url: '/ControllerName/Action2', 
     data: { parm1:parm1 }, 
     success: function() { 
     // Success function 
     }, 
     error: function() { 
     // Error message 
     } 
    }); 
});