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

  1. Таблица внутри элемента?
  2. Можете ли вы добавить атрибут name к элементам ввода? Обратите внимание, что элементы формы связаны своими именами, а не id.

Второй вариант: второй вариант - добавить коллекцию в вашу модель и присвоить ей имя. т.е.

public class MyModel
{
  ...
  public IList<string> MyTableItems { get; set; }
}

и на ваш взгляд используйте следующие имена:

<input name="MyTableItems[]" value="" />
Другие вопросы по тегам