从html获取值到控制器

时间:2011-01-05 15:48:48

标签: asp.net controller formcollection

我正在尝试从我的控制器访问用户在表格中引入的值。

此表不是模型的一部分,视图源代码类似于:

<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 个答案:

答案 0 :(得分:0)

使用FormCollection应该有效,除非您的表格不在<form>标记内


除了Lazarus的评论之外,你可以试试这个,但你必须为每个人设置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将连接到这些值。

答案 1 :(得分:0)

第一个选项: 使用FormCollection是访问动态数据的最简单方法。奇怪的是你无法从中获取这些值,你可以查看以下内容吗?

  1. 桌子里面是 元件?
  2. 您可以添加名称属性吗? 到输入元素?注意 表单项由其名称绑定, 不是id。
  3. 第二个选项: 第二个选项是在模型中添加一个集合,并相应地命名所有内容。即

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

    并在您的视图中使用以下名称:

    <input name="MyTableItems[]" value="" />