将HTML表信息从MVC视图传递给控制器​​?

时间:2011-08-19 17:10:40

标签: c# asp.net-mvc asp.net-mvc-2

是否有“最佳”(或首选)方法将ASP.Net MVC视图中的HTML表格中的信息传递给控制器​​?我正在使用MVC2,如果我坚持使用Context对象(主要是Request.Form [:: variables ::],我不知道如何使用表/表格单元检索视图中显示的信息我正在使用的表有一个对应于每行数据的复选框,我想让“已检查”行的数据可供控制器使用。我想到以下快速修复:

1)由于有问题的表有一个复选框,而且“input”类型的HTML元素具有“id”属性,因此数据值可以存储在某种类型的连接字符串中复选框的“id”属性。

2)类似于上面对复选框“id”属性的误用,数据值可以存储在文本(文本框)输入元素的“text”属性中。

......但即使它确实奏效,这一切看起来都很糟糕。我对网络编程/开发领域相对较新(虽然不是编程新手),所以如果有人可以建议替代方法和/或技术(我愿意通过JavaScript等尝试),我将不胜感激。我甚至会欣赏相关教程的链接(或者我可能错过的相关StackOverflow帖子)。 :-P

1 个答案:

答案 0 :(得分:4)

如果你有这样的表格:

<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)
{
}

复选框的值也可以是字符串,如果是首选的话。