2013-05-27 2 views
0

Я использую @ Ajax.BeginForm() в моем приложении asp.net mvc3. Поскольку страница плотно связана, она отправляет значения модели при нажатии кнопки отправки. Мое требование состоит в том, что при нажатии кнопки отправки мне нужно заполнить список, который присутствует вне формы, используя некоторую логику и передать список параметров Json, присутствующих в списке, в контроллер в качестве дополнительного параметра. Как это достичь?Как отправить дополнительные параметры в @ Ajax.Beginform() вместе с значениями модели?

@using (Ajax.BeginForm("Controller_Method", "Controller_Name", new AjaxOptions { HttpMethod = "POST", OnSuccess = "SUCCESS" })) 
{ 
} 

<select id="listbx"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="mercedes">Mercedes</option> 
<option value="audi">Audi</option> 
</select> 

OnClick кнопки отправить, добавить элемент к ListBox с помощью JQuery и хочет передать все элементы в качестве параметра JSon к контроллеру ..

ответ

1

Вы можете clone в переключателе внутри формы в скрытый div перед отправкой формы.

Также не забудьте добавить атрибут name в список выбора или ничего не публиковался в контроллер:

@using (Ajax.BeginForm("Controller_Method", "Controller_Name", new AjaxOptions { HttpMethod = "POST", OnSuccess = "SUCCESS", OnBegin = "beforeSend" })) 
{ 
    <div id="listBoxContainer" style="display:none;"></div> 
} 

<select id="listbx" name="listbox"> 
<option value="volvo">Volvo</option> 
<option value="saab">Saab</option> 
<option value="mercedes">Mercedes</option> 
<option value="audi">Audi</option> 
</select> 

и затем реализовать beforeSend обратный вызов для клонирования переключателя в вид:

function beforeSend() { 
    $('#listBoxContainer').html($('#listbx').clone()); 
} 
+0

Спасибо. Но как я могу принять значение в контроллере? Должен ли я добавить параметр? Потому что я не могу связать с ним параметр Model. Я не возражаю, если я могу отправить весь список #listbx как json-массив в качестве параметра. Как это сделать? –

+0

У вас будет параметр с тем же именем, что и выпадающий список ('listbox' в моем примере). –

+0

Я сделал точно так же, как вы сказали. Но все же параметр модели возвращается контроллеру равным нулю. Можете ли вы показать код контроллера? –

Смежные вопросы