0

この webgrid がグリッド内のすべての行を繰り返すのはなぜですか??

@model IEnumerable<Blog.Domain.Model.BlogPost>
@{
    ViewBag.Title = "Posts";
    Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml";
}


@Html.ActionLink("Add Post", "Add", "Blog")

@{
    var grid = new WebGrid(Model);
}
@foreach (var items in Model)
{
    <div id="grid">
        @grid.GetHtml(columns: new[] {grid.Column("Title",header:""),
        grid.Column("",header:"",format:(item)=>Html.ActionLink("More Details","Details","Blog",new{postId=items.Id},null)),
        grid.Column("",header:"",format:(item)=>Html.ActionLink("Delete","Delete","Blog",new{postId=items.Id},null)),
        grid.Column("",header:"",format:(item)=>Html.ActionLink("Edit","Edit","Blog",new {postId=items.Id},null)), })

    </div>
}

私の平均:たとえば、2つのデータの場合、4つのデータを2回レンダリングします。

4

2 に答える 2

0

foreachモデルを通過する必要はありません。GetHtml()あなたのためにすべてをします。

Modelコンストラクターに渡すとWebGrid()、グリッドは、呼び出し時にレンダリングする必要があるデータを認識できるようになるGetHtml()ため、他に何もする必要はありません。

これはそれを行う必要があります:

@{
    var grid = new WebGrid(Model);

    <div id="grid">
        @grid.GetHtml(columns: new[] {grid.Column("Title",header:""),
        grid.Column("",header:"",format:(item)=>Html.ActionLink("More Details","Details","Blog",new{postId=item.Id},null)),
        grid.Column("",header:"",format:(item)=>Html.ActionLink("Delete","Delete","Blog",new{postId=item.Id},null)),
        grid.Column("",header:"",format:(item)=>Html.ActionLink("Edit","Edit","Blog",new {postId=item.Id},null)), })
     </div>
}
于 2013-02-10T22:47:47.867 に答える
0

私は WebGrid をあまり扱っていないので、100% 確信はありませんが、それが必要です@foreachか? @grid.GetHtml()すべてのレコードを返しませんか?

于 2013-02-10T22:51:06.037 に答える