首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RenderPartial未在div内渲染

RenderPartial未在div内渲染
EN

Stack Overflow用户
提问于 2012-04-04 00:46:18
回答 2查看 2.8K关注 0票数 1

嗨,我在理解MVC3和剃刀是如何工作的时候遇到了一些问题。基本上,我有一个用Html.Render partial呈现的视图。基本上,我尝试在div中呈现内容或局部视图,如下所示。

代码语言:javascript
复制
<div id="mydiv.id">
@{Html.RenderPartial("_BankAccountGrid", Model.CheckAccounts);}
</div>


@if (Model.Any())
{        

        @{Html.Grid(Model).Columns(c =>
        {
                c.For(a => Html.ActionLink(
                    "Edit",
                    "EditBankAccountDetails",
                    "UserManagement",
                    new { Id = a.Id }, new { id = "modalEdit" }));
                c.For(a => a.AccountName);
                c.For(a => a.AccountNumber);
                c.For(a => a.RoutingNumber);
                c.For(a => a.BankName);
                c.For(a => a.CheckAccountType);
                c.For(a => a.AccountType_Id).Visible(false);
                c.For(a => a.version).Visible(false);
                c.For(a => a.IsDefault).Visible(false);
                c.For(a => a.User_Id).Visible(false);
                c.For(a => a.Id).Visible(false);
            }).Render();
        }      
}

但是,当我查看firebug中的DOM时,Table总是呈现在div之外的一个table元素中。我也试过了。

代码语言:javascript
复制
@{Html.RenderPartial("_BankAccountGrid", Model.CheckAccounts);}


@if (Model.Any())
{        
    <div id="accounts.grid.div">
        @{Html.Grid(Model).Columns(c =>
        {
                c.For(a => Html.ActionLink(
                    "Edit",
                    "EditBankAccountDetails",
                    "UserManagement",
                    new { Id = a.Id }, new { id = "modalEdit" }));
                c.For(a => a.AccountName);
                c.For(a => a.AccountNumber);
                c.For(a => a.RoutingNumber);
                c.For(a => a.BankName);
                c.For(a => a.CheckAccountType);
                c.For(a => a.AccountType_Id).Visible(false);
                c.For(a => a.version).Visible(false);
                c.For(a => a.IsDefault).Visible(false);
                c.For(a => a.User_Id).Visible(false);
                c.For(a => a.Id).Visible(false);
            }).Render();
        }
    </div>
}

。。但无济于事。我是不是漏掉了什么?

如果我说得不够清楚,或者你只是需要更多的信息,请直接问,而不是投票反对。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-04 00:49:02

您似乎正在使用MvcContrib.Grid。你应该在你的问题中提到这一点。首先,确保您下载了最新版本(为RazorMVC3制作的版本,因为用于ASP.NET MVC2的旧版本不能很好地与ASP.NET一起工作)。

然后试着这样做:

代码语言:javascript
复制
@if (Model.Any())
{        
    @(Html
        .Grid(Model)
        .Columns(c =>
        {
            c.Custom(
                @<text>
                    @Html.ActionLink(
                        "Edit", 
                        "EditBankAccountDetails", 
                        "UserManagement", 
                        new { Id = item.Id }, 
                        new { id = "modalEdit" }
                    )
                 </text>
            ).Named("");

            c.For(a => a.AccountName);
            c.For(a => a.AccountNumber);
            c.For(a => a.RoutingNumber);
            c.For(a => a.BankName);
            c.For(a => a.CheckAccountType);
            c.For(a => a.AccountType_Id).Visible(false);
            c.For(a => a.version).Visible(false);
            c.For(a => a.IsDefault).Visible(false);
            c.For(a => a.User_Id).Visible(false);
            c.For(a => a.Id).Visible(false);
        })
     )
}

请注意,我对ActionLink使用了Custom列,并且不再调用网格上的.Render方法。

票数 0
EN

Stack Overflow用户

发布于 2012-04-04 00:51:18

Html.RenderPartial直接写入响应。我想你想要的是Html.Partial。

代码语言:javascript
复制
<div id="mydiv.id">
@Html.Partial("_BankAccountGrid", Model.CheckAccounts)
<div>

有关更多详细信息,请参阅this question

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9997777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档