MVC 3 Webgrid - comment cacher les colonnes que vous ne voulez pas voir?

J'ai un webgrid et il y a une colonne je veux être visible uniquement à certains utilisateurs.
Actuellement, j'ai codé la grille comme suit

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")
    ));
}

Mais il y a sûrement une meilleure façon, sans répéter tout ce qui code?
La seule différence entre les 2 entrées de la colonne, c'est que je veux afficher le lien Modifier pour particlaur utilisateurs. Quelle est donc la meilleure alternative façon de le faire?

source d'informationauteur arame3333