2012-03-01 48 views
0

enter image description hereasp.net MVC阅读HTML表格/单元格值

我的应用程序需要做与复选框的表的一个HTTP POST像上面在图像中。在控制器端,我需要遍历表并对每个检查过的行执行某些操作。

,我需要做的事情是:

  1. 标识行是否被选中
  2. 获取选中的行

我对如何这个很好理解的单元格的值只要发布表格就会在Razor中完成。但是一旦我在我的控制器的操作方法中,我就无能为力了。

请帮忙。谢谢。

回答

0

从你所展示的内容看,你的行为方法中真正需要的是一组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的集合以及代表什么“更新”来执行一些其他的数据模型。发布收藏可能会非常棘手;您可能需要使用输入的名称和/或隐藏索引来播放,如果您没有按预期发回所有数据。

+0

感谢您的回复。只有一点问题,我可以在示例代码中确定复选框是否被选中?在我看来,操作方法将接收所有的复选框ID,无论它们是否被选中,这很好,但我只需要筛选出那些被选中的选项。 – Ronald 2012-03-01 16:10:49

+0

@Ronald浏览器不应该发布任何未选中的复选框。但是,您可能无法使用帮助程序,因为它为您创建的每个复选框添加了一个额外的复选框,其值为“false”,状态为“checked”,以便您为每个复选框获取值。但是,如果您手动创建它们,则只应获取已检查的值。 – tvanfosson 2012-03-01 16:13:25