2012-03-01 20 views
0

enter image description hereasp.net MVC読取HTMLテーブル/セル値

私のアプリケーションは、上記画像のようにチェックボックスを使用してテーブルのHTTPポストを実行する必要があります。コントローラ側では、テーブルをトラバースし、チェックされた各行に対して特定の操作を実行する必要があります。

私が行うために必要なものは次のとおり確認した行

のセルの値は、私がどのようにこの上をよく理解している取得

  1. は、行が
  2. チェックされているかどうかを確認フォームが懸念される限り、Razorで行われます。しかし、私がコントローラのアクションメソッドに入ったら、私は無知です。

    助けてください。ありがとう。

答えて

0

あなたが示していることから、あなたのアクションメソッドで本当に必要なのは、変更する「行」を識別するIDの集合です。私は、それらが表す行のidに設定された値を持つ一連のチェックボックスを使用します。おそらく、あなたは、これらの行を検索したり、サーバー側にキャッシュするための永続性メカニズムを持っています。それはあなたがIDのコレクションだけでなく、「更新」を実行するために何を表すいくつかの他のデータとモデルを持っている可能性が高いということ

[HttpPost] 
public ActionResult Update(List<int> rowIDs) // where your checkboxes are named rowIDs 
{ 
    var messages = DB.Messages.Where(m => rowIDs.Contains(m.ID)); 
    foreach (var message in messages) 
    { 
     // process the update 
    } 

    DB.SaveChanges(); 
    return RedirectToAction("index"); // display the updated list 
} 

注意。コレクションを投稿するのは難しいことがあります。すべてのデータを期待どおりにポストバックしない場合は、入力の名前や隠しインデックスを使用して再生する必要があります。

+0

ご返信ありがとうございます。あなたのサンプルコードで、チェックボックスがオンになっているかどうかを確認することができます。チェックされているかどうかに関係なく、アクションメソッドはすべてのチェックボックスIDを受け取りますが、これは問題ありませんが、チェックされているものだけをフィルタリングする必要があります。 – Ronald

+0

@ロナルドブラウザは、チェックされていないチェックボックスを投稿してはいけません。ただし、ヘルパーを使用することができない場合があります。これは、チェックボックスごとに値を取得できるように、作成する各チェックボックスに対して値が「false」でステータスが「checked」である余分なチェックボックスを追加するためです。ただし、手動で作成した場合は、チェックされている値だけを取得してください。 – tvanfosson

関連する問題