2011-01-05 18 views
2

ユーザがコントローラからテーブルに導入した値にアクセスしようとしています。htmlからコントローラへの値の取得

このテーブルには、モデルの一部ではなく、ビューのソースコードのようなものです:私は、コントローラからこれらの値(1234、578)を取得できますか

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

?それがテーブルを取得していないため、動作しませんformcollectionを受け

...

ありがとうございました。

+2

フォームコレクションは入力制御値を受信する必要がありますが、あなたはIDの番号を使用して問題がある可能性があります。 id = "control1"などを試してみてください。 – Lazarus

答えて

0

FormCollectionを使用すると、あなたのテーブルには、ラザロのコメントの上に


<form>タグの内側にない場合を除き、あなたはこれを試すことができます動作しますが、あなたはそれぞれのname属性を設定している必要があります

[HttpPost] 
public ActionResult MyMethod(IList<int> seriales) 
{ 
    // seriales.Count() == 2 
    // seriales[0] == 1234 
    // seriales[1] == 578 
    return View(); 
} 
:あなたはあなたの方法は、このように見せることができ、あなたのアクションメソッドで今すぐ
<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);"/> 

およびserialesは、これらの値に配線されます。

0

まずオプション:FormCollectionを使用して は、動的なデータにアクセスするための最も簡単な方法です。それらの値を得ることができないのは奇妙です。次のことを確認できますか?

  1. テーブルは 要素内にありますか?
  2. 入力要素に名前属性 を追加できますか? フォームアイテムは、その名前で束縛されています。 はidではありません。

番目のオプション: 二番目のオプションは、あなたのモデルでコレクションを追加し、それに応じてすべてのものに名前を付けることです。すなわち

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

およびビューの使用次の名前で

<input name="MyTableItems[]" value="" /> 
関連する問題