1

我正在尝试使用 MvcContrib Grid 帮助器将模型对象列表绑定到网格。显然,发出 HTML 表格很容易,但我正在努力返回所有选定的行(或所有行并通过 Where(x => x.Selected) 进行过滤)。

这是我的意思的虚拟版本:

模型:

public class Player
{
    [ScaffoldColumn(false)]
    public int Id { get; set; }
    public string Name { get; set; }
    public int JerseyNumber { get; set; }
    public string Position { get; set; }
    [ScaffoldColumn(false)]
    public bool Selected { get; set; }
}

看法:

@model democode.Models.Player    
@using (Html.BeginForm())
{
    @{
    var grid = Html.Grid(Model)
               .AutoGenerateColumns()
               .Columns(c => c.For(p => Html.CheckBoxFor(_ => p.Selected)).InsertAt(0))
               .Columns(c => c.For(p => Html.HiddenFor(_ => p.Id)))
        grid.Render();
     }

     <p>
     <input type="submit" value="Submit" /> 
     </p>
}

因此,您正在查看的是一个曲棍球运动员网格,每个人前面都有一个复选框,允许用户选择一个或多个。单击提交时,我希望它可以将集合发布回来(理解除了 Selected 和 Id 之外的所有内容都将为空/默认),但我理解问题是 POST 数据中遇到的记录在键值对列表。过去,我通过手写 HTML 表格并使用 Phil Haack 在此处概述的策略成功地解决了这个问题:http: //haacked.com/archive/2008/10/23/model-binding-to-a-list .aspx

我的问题是,我可以使用 MvcContrib 的 Grid 助手做同样的事情,还是它比它的价值更多?

4

0 回答 0