C# 在MVC4中选择要编辑的多个表行

C# 在MVC4中选择要编辑的多个表行,c#,sql,forms,asp.net-mvc-4,razor,C#,Sql,Forms,Asp.net Mvc 4,Razor,所以我正在用MVC4创建一个网站。基本上,我拥有的是一个许可表,其中包含一系列属性。我希望能够在此表中添加复选框,以便当您选择一组许可证并单击“提交”按钮时,它将允许您批量编辑所选许可证的一些选定属性(例如,许可证上的发布日期)。我似乎找不到一个简单的方法来实现这一点 我不确定是否有一种简单的方法可以做到这一点。但是,我将提出一个解决方案。 这些步骤是: 有一个操作将许可证列表发送到视图 视图将它们显示在表中,并允许用户进行编辑 视图将此列表发布到另一个操作 此操作接收所有许可证,无论是否已编辑

所以我正在用MVC4创建一个网站。基本上,我拥有的是一个许可表,其中包含一系列属性。我希望能够在此表中添加复选框,以便当您选择一组许可证并单击“提交”按钮时,它将允许您批量编辑所选许可证的一些选定属性(例如,许可证上的发布日期)。我似乎找不到一个简单的方法来实现这一点

我不确定是否有一种简单的方法可以做到这一点。但是,我将提出一个解决方案。 这些步骤是:

  • 有一个操作将许可证列表发送到视图
  • 视图将它们显示在表中,并允许用户进行编辑
  • 视图将此列表发布到另一个操作
  • 此操作接收所有许可证,无论是否已编辑
  • 那么,让我们深入研究一下

    型号

    public class License
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Notes { get; set; }
    }
    
    第一个动作

    public ActionResult Index()
    {
        List<License> viewModel = new List<License>();
        viewModel.Add(new License() { Id = 1, Name = "Whatever" });
        viewModel.Add(new License() { Id = 2, Name = "Whatever else" });
        viewModel.Add(new License() { Id = 3, Name = "Nevermind this one" });
    
        return View(viewModel);
    }
    
    [HttpPost]
    public ActionResult Save(License[] licenses)
    {
        return View();
    }
    
    需要注意的几点:

  • 我正在使用jQuery
  • 创建输入时请注意该索引。它必须从0开始,递增1。这是模型绑定理解这是项集合的唯一方法
  • 在第二个操作中,您可以操纵该列表。将其保存到数据库或其他任何地方

  • 使用复选框时,请将其与模型中的布尔属性相关联。然后,在发布表单时,只需在发布的模型中迭代,查找value等于true的bool属性。
    [HttpPost]
    public ActionResult Save(License[] licenses)
    {
        return View();
    }