Из того, что вы показываете, кажется, что все, что вам действительно нужно в вашем методе действия, - это набор идентификаторов, чтобы определить, какие "строки" нужно изменить. Я бы использовал ряд флажков со значениями, установленными на идентификатор строки, которую они представляют. Предположительно, у вас есть какой-то механизм сохранения, в котором эти строки можно искать или кэшировать на стороне сервера.
[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
}
Обратите внимание, что более вероятно, что у вас есть модель с набором идентификаторов, а также некоторые другие данные, представляющие, какое "обновление" выполнить. Размещение коллекций может быть сложным; вам может понадобиться поиграть с именем ввода и / или со скрытыми индексами, если вы не получаете все данные, отправленные обратно, как ожидалось.