2011-01-05 95 views
2

我试图访问用户从我的控制器表中引入的值。从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)?

接听的FormCollection,因为它没有得到该表不工作...

谢谢。

+2

的形式收集应接收输入控制值,则可能是使用号码,ID的问题。尝试使用id =“control1”等。 – Lazarus 2011-01-05 15:53:52

回答

0

使用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);"/> 

现在您的操作方法可以让你的方法是这样的:

[HttpPost] 
public ActionResult MyMethod(IList<int> seriales) 
{ 
    // seriales.Count() == 2 
    // seriales[0] == 1234 
    // seriales[1] == 578 
    return View(); 
} 

seriales将连线到这些值。

0

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

  1. 是 元素中的表?
  2. 您可以将名称属性 添加到输入元素吗?请注意, 表单项是由它们的名称绑定的, 不是id。

第二个选项: 第二个选项是增加你的模型集合,并依此命名的一切。即

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

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

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