2

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

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

<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)?

接收表单集合不起作用,因为它没有得到表格......

谢谢你。

4

2 回答 2

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连接到这些值。

于 2011-01-05T15:56:32.800 回答
0

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

  1. 表格在元素内部吗?
  2. 您可以将名称属性添加到输入元素吗?请注意,表单项受其名称约束,而不是 id。

第二个选项: 第二个选项是在模型中添加一个集合,并相应地命名所有内容。IE

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

在您看来,请使用以下名称:

<input name="MyTableItems[]" value="" />
于 2011-01-05T16:05:22.310 回答