Я новичок в 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 (), может быть?