Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 模型使用MvcContrib网格绑定视图模型列表_Asp.net Mvc 3_Model Binding_Mvccontrib Grid - Fatal编程技术网

Asp.net mvc 3 模型使用MvcContrib网格绑定视图模型列表

Asp.net mvc 3 模型使用MvcContrib网格绑定视图模型列表,asp.net-mvc-3,model-binding,mvccontrib-grid,Asp.net Mvc 3,Model Binding,Mvccontrib Grid,我正在尝试使用MvcContrib网格助手将模型对象列表绑定到网格。显然,发出HTML表很容易,但我很难返回所有选定的行(或所有行并通过Where(x=>x.selected)进行过滤) 这是我的意思的一个虚拟版本: 型号: public class Player { [ScaffoldColumn(false)] public int Id { get; set; } public string Name { get; set; } public int Jer

我正在尝试使用MvcContrib网格助手将模型对象列表绑定到网格。显然,发出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
@使用(Html.BeginForm())
{
@{
var grid=Html.grid(模型)
.AutoGenerateColumns()
.Columns(c=>c.For(p=>Html.CheckBoxFor(=>p.Selected)).InsertAt(0))
.Columns(c=>c.For(p=>Html.HiddenFor(=>p.Id)))
grid.Render();
}

}
因此,您看到的是曲棍球运动员的网格,每个人前面都有一个复选框,允许用户选择一个或多个。单击submit,我希望它将集合发回(了解除Selected和Id之外的所有项都将为null/default),但我知道问题是post数据中遇到的记录在键值对列表中有重叠的键。 过去,我通过手工编写HTML表并使用Phil Haack在此概述的策略,成功地解决了这一问题:

我的问题是,我可以使用MvcContrib中的Grid helper做同样的事情吗,或者它的工作量是否超过了它的价值

@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>
}