У меня есть таблица с разным.данные.В каждой строке есть флажок.Эта таблица НЕ в форме.Я хочу использовать jQuery, чтобы получить значение из каждой «проверенной строки», добавить эти значения в форму, а затем отправить в мой метод контроллера с помощью традиционного POST.
Я получаю значения, которые мне нужны, вот так:
$('#some-button').click(function(){
var theValues = [];
$('#some-table tbody tr td:first-child input:checkbox').each(function(){
if(this.checked){
theValues.push($(this).parent().next().val());
}
});
$('#some-form').val(theValues.serialize()).submit();
});
Форма в представлении выглядит следующим образом:
@using(Html.BeginForm("TheAction", "TheController",
FormMethod.Post, new { @id = "some-form" }))
{
<input id="some-button" type="button" value="Do Stuff" />
}
И мой метод контроллера выглядит следующим образом:
[HttpPost]
public ActionResult TheAction(IEnumerable<string> values)
{
// Do stuff with values...
return RedirectToAction("SomewhereElse");
}
Проблема в том, что ничего не происходит.В буквальном смысле слова Firebug демонстрирует нулевую активность.Значения правильно выбираются в соответствии с выполнением инструкции jQuery (где я получаю значения, которые мне нужны из строк таблицы) в консоли FB.
Любые идеи ???
ОБНОВЛЕНИЕ:
Согласно предложению Правина, я попытался использовать скрытое поле формы, но проблема остается ...
Добавил это в форму:
@Html.Hidden("values", new { @id = "the-values" })
И обновил мой JavaScript до этого:
$('#some-button').click(function(){
var theValues = [];
$('#some-table tbody td td:first-child input:checkbox').each(function(){
if(this.checked){
theValues.push($(this).parent().next().val())
}
});
$('#the-values').val(theValues);
$('#some-form').submit();
});
Опять проблема остается.Событие JS 'click' срабатывает, но POST не происходит.Ничего, надда, молния.