あなたが示していることから、あなたのアクションメソッドで本当に必要なのは、変更する「行」を識別する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
}
注意。コレクションを投稿するのは難しいことがあります。すべてのデータを期待どおりにポストバックしない場合は、入力の名前や隠しインデックスを使用して再生する必要があります。
ご返信ありがとうございます。あなたのサンプルコードで、チェックボックスがオンになっているかどうかを確認することができます。チェックされているかどうかに関係なく、アクションメソッドはすべてのチェックボックスIDを受け取りますが、これは問題ありませんが、チェックされているものだけをフィルタリングする必要があります。 – Ronald
@ロナルドブラウザは、チェックされていないチェックボックスを投稿してはいけません。ただし、ヘルパーを使用することができない場合があります。これは、チェックボックスごとに値を取得できるように、作成する各チェックボックスに対して値が「false」でステータスが「checked」である余分なチェックボックスを追加するためです。ただし、手動で作成した場合は、チェックされている値だけを取得してください。 – tvanfosson