Передача информации таблицы HTML из представления MVC в контроллер? - PullRequest
1 голос
/ 19 августа 2011

Существует ли «лучший» (или предпочтительный) способ передачи информации из таблицы HTML в представлении ASP.Net MVC в контроллер? Я работаю с MVC2, и если я продолжаю использовать объекты Context (в основном Request.Form [:: variable ::], я в растерянности относительно того, как извлечь информацию, представленную в представлении, используя ячейку таблицы / таблицы структура. У таблицы, с которой я работаю, есть флажок, соответствующий каждой строке данных, и я хочу сделать данные из «проверенных» строк доступными для контроллера. Следующие быстрые исправления приходят на ум:

1) Поскольку в рассматриваемой таблице есть флажок, а элементы HTML типа «input» имеют атрибут «id», значения данных могут храниться в виде какой-то связанной строки в атрибут "id" для флажка.

2) Подобно вышеприведенному неправильному использованию атрибута «id» флажка, значения данных могут быть сохранены в атрибуте «text» для элемента ввода text (textbox).

... но все это кажется действительно клугем, даже если это работает. Я относительно новичок в области веб-программирования / разработки (хотя и не новичок в программировании), поэтому, если кто-то может предложить альтернативные методы и / или технологии (я открыт для того, чтобы пробовать что-то с помощью JavaScript и т. Д.), Я был бы признателен. Я был бы признателен даже за ссылки на соответствующие учебные пособия (или связанные посты StackOverflow, которые я мог пропустить). : -Р

1 Ответ

4 голосов
/ 19 августа 2011

Если у вас есть форма, подобная этой:

<form action="." method="POST">
  <table>
    <tbody>
      <tr>
        <td>
          <input type="checkbox" name="checkedValues" value="1" />
        </td>
      </tr>
      <tr>
        <td>
          <input type="checkbox" name="checkedValues" value="2" />
        </td>
      </tr>
      <tr>
        <td>
          <input type="checkbox" name="checkedValues" value="3" />
        </td>
      </tr>
    </tbody>
  </table>
</form>

Это будет сопоставляться с этим параметром в вашем действии контроллера при возникновении публикации, где значения отмеченных флажков хранятся в массиве checkedValues:

public ActionResult MyAction(int[] checkedValues)
{
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...