【问题标题】:Render Partial View from within a System.Web.Helpers.WebGrid从 System.Web.Helpers.WebGrid 中渲染部分视图
【发布时间】:2011-05-07 23:33:14
【问题描述】:

我正在尝试从 System.Web.Helpers.WebGrid 中渲染 Partial

我的模型类如下所示:

class GameInfo
{
    public List<AppUser> Team1 { get; set; }
        public List<AppUser> Team2 { get; set; }
    // and more properties
}

class AppUser
{
        public string PictureUrl { get; set; }
        public string ProfileUrl { get; set; }
        public long GamesWon { get; set; }
        public long GamesLost { get; set; }
        public int Points { get; set; }
    // and more properties
}

我希望我的 GridView 在我的网格视图中显示 GameInfo 的列表。 结果比预期更难的是渲染团队(列表)。 为了保持 DRY,我创建了一个局部视图来渲染团队 (_Team.cstml)。

这是我的剃须刀代码:

@if (Model != null)
{
   var webgrid = new WebGrid(source: Model.Games,
   rowsPerPage: 10);


<div id="grid">
    @webgrid.GetHtml(
    columns: webgrid.Columns(           
         webgrid.Column(header: "Score", format: @<text>@item.Score1/@item.Score1</text>),
         webgrid.Column(header: "Team 1", format: (item) =>
            {

                return "hello sb"; // this line works!
                //return Html.Partial("_Team", item.Team1);  // this gives an error
            })
         )
         )
</div>
}

知道如何让它工作吗?

谢谢!

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    万一其他人遇到这个问题,我今天早上设法解决了。 这有效:

    webgrid.Column(header: "Team 1", format: (item) =>
                    {
                        List<Cuarenta.Web.Models.AppUser> team = ((Cards.Cloud.WebRole.Admin.GameInfo)item.Value).Team1;                       
                        return Html.Partial("_Team", team);
                    })
    

    【讨论】:

    • 不要忘记 item.Value 以获取您希望绑定到 Partial Renderer 的对象。把我弄糊涂了。
    • 谢谢你,Richard B。出于某种原因,我只是简单地调用item.MyProperty 作为我的format 属性的参数,但是在上述情况下,我需要使用@ 987654324@.
    猜你喜欢
    • 1970-01-01
    • 2013-04-26
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多