MVC 3 Webgrid - как скрыть колонки, которые вы не хотите видеть?

У меня есть веб-сетка, и есть колонка, которую я хочу видеть только определенным пользователям. На данный момент я закодировал сетку следующим образом

if (Context.User.IsInRole(Role.Inputter) || Context.User.IsInRole(Role.Administrator))
{
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
        grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { contractId = item.ContractId })),
        grid.Column("SignOffDate", "Sign Off Date",
            format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
        grid.Column("FullContractNumber", "Contract Number"),
        grid.Column("ContractTitle", "Title")
    ));
}
else
{ 
    @grid.GetHtml(columns: grid.Columns(
        grid.Column(format: (item) => Html.ActionLink("Select", "Details", new { contractId = item.ContractId })),
        grid.Column("SignOffDate", "Sign Off Date",
            format: @<text> <span>@item.SignOffDate.ToString("d/M/yyyy")</span></text>),
        grid.Column("FullContractNumber", "Contract Number"),
        grid.Column("ContractTitle", "Title")
    ));
}

Но наверняка есть лучший способ не повторять весь этот код? Единственная разница между входами в 2 колонки в том, что я хочу показать ссылку Edit для пользователей партиклаура. Так какой же лучший альтернативный способ сделать это?

13
задан Leniel Maccaferri 15 December 2011 в 20:15
поделиться