嗨,我在理解MVC3和剃刀是如何工作的时候遇到了一些问题。基本上,我有一个用Html.Render partial呈现的视图。基本上,我尝试在div中呈现内容或局部视图,如下所示。
<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元素中。我也试过了。
@{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>
}。。但无济于事。我是不是漏掉了什么?
如果我说得不够清楚,或者你只是需要更多的信息,请直接问,而不是投票反对。
发布于 2012-04-04 00:49:02
您似乎正在使用MvcContrib.Grid。你应该在你的问题中提到这一点。首先,确保您下载了最新版本(为RazorMVC3制作的版本,因为用于ASP.NET MVC2的旧版本不能很好地与ASP.NET一起工作)。
然后试着这样做:
@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方法。
发布于 2012-04-04 00:51:18
Html.RenderPartial直接写入响应。我想你想要的是Html.Partial。
<div id="mydiv.id">
@Html.Partial("_BankAccountGrid", Model.CheckAccounts)
<div>有关更多详细信息,请参阅this question
https://stackoverflow.com/questions/9997777
复制相似问题