【发布时间】:2011-08-24 06:47:29
【问题描述】:
我是 MVC3 的新手 - 我正在使用 WebGrid 在网站上显示一些列,用于我正在进行的拍卖。这将显示一个显示最新出价的网格。当管理员以外的任何人登录时,他们应该只看到投标金额和日期/时间。当管理员登录时,他们应该会看到所有列(姓名和联系信息)。我想我可能不得不以某种方式在代码中按摩这个,但我想知道是否有办法在 Razor 标记中处理它?这是我现在拥有的:
@{ var grid = new WebGrid(Model.Bids.OrderByDescending(b => b.BidAmount)); }
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("BidAmount", format: @<text>$@item.BidAmount</text>),
grid.Column("BidDateTime"),
grid.Column("FirstName"),
grid.Column("LastName"),
grid.Column("Email"),
grid.Column("PhoneNumber")
)
)
所以我想用伪代码做的是这样的:
@{ var grid = new WebGrid(Model.Bids.OrderByDescending(b => b.BidAmount)); }
@grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("BidAmount", format: @<text>$@item.BidAmount</text>),
grid.Column("BidDateTime"),
@if(userIsAdmin){
grid.Column("FirstName"),
grid.Column("LastName"),
grid.Column("Email"),
grid.Column("PhoneNumber")
)
}
)
这可以吗?如果没有,关于如何处理它的任何想法?我是否需要编写两个不同的 WebGrid,并用 if() 包围它们?
【问题讨论】:
-
您是否尝试过用条件检查包围单个列? (不确定这是否可能。)类似: if(isAdmin) { grid.Column(...) }
-
@Todd 你得到解决方案了吗?如果是的话,你能把它贴在这里吗?
标签: asp.net-mvc-3