Получение значений из HTML в контроллер
Я пытаюсь получить доступ к значениям, которые пользователь вводит в таблицу из моего контроллера.
Эта таблица НЕ является частью модели, и исходный код представления выглядит примерно так:
<table id="tableSeriales" summary="Seriales" class="servicesT" cellspacing="0" style="width: 100%">
<tr>
<td class="servHd">Seriales</td>
</tr>
<tr id="t0">
<td class="servBodL">
<input id="0" type="text" value="1234" onkeypress = "return handleKeyPress(event, this.id);"/>
<input id="1" type="text" value="578" onkeypress = "return handleKeyPress(event, this.id);"/>
.
.
.
</td>
</tr>
</table>
Как я могу получить эти значения (1234, 578) от контроллера?
Получение коллекции форм не работает, так как не получает таблицу...
Спасибо.
2 ответа
С использованием FormCollection
должен работать, если ваш стол не находится внутри <form>
тег
В верхней части комментария Лазаря, вы можете попробовать это, но вы должны установить name
атрибут для каждого:
<input id="seriales[0]" name="seriales[0]" type="text" value="1234" onkeypress="return handleKeyPress(event, this.id);"/>
<input id="seriales[1]" name="seriales[1]" type="text" value="578" onkeypress="return handleKeyPress(event, this.id);"/>
Теперь в вашем методе Action вы можете сделать так, чтобы ваш метод выглядел так:
[HttpPost]
public ActionResult MyMethod(IList<int> seriales)
{
// seriales.Count() == 2
// seriales[0] == 1234
// seriales[1] == 578
return View();
}
а также seriales
будет подключен к этим значениям.
Первый вариант: использование FormCollection является самым простым способом доступа к динамическим данным. Странно, что вы не можете получить эти значения из него, вы можете проверить следующее?
- Таблица внутри элемента?
- Можете ли вы добавить атрибут name к элементам ввода? Обратите внимание, что элементы формы связаны своими именами, а не id.
Второй вариант: второй вариант - добавить коллекцию в вашу модель и присвоить ей имя. т.е.
public class MyModel
{
...
public IList<string> MyTableItems { get; set; }
}
и на ваш взгляд используйте следующие имена:
<input name="MyTableItems[]" value="" />