c# – asp.net MVC3 razor:基于用户角色显示actionlink

Im新到MVC。我想能够为一些用户隐藏一些actionlinks。说我有一个“创建”actionlink,我只希望管理员看到和点击。我想使用某种类型的“loggedintemplate”可用在asp.net,但它似乎不工作在剃刀..

我可以使用某种类型的代码块与if语句检查当前用户和她的角色,但这可能不是最佳实践?

我的index.cshtml ..

// want some adminauth attribute here...
@Html.ActionLink("Create New", "Create")

我的控制器

// GET: /Speaker/Create
[Authorize(Roles = "Administrators")]
public ActionResult Create()
{
    return View();
}

干杯! 🙂

我在过去创建了一个帮助函数,只有当符合条件时返回输出如下:

public static MvcHtmlString If(this MvcHtmlString value, bool evaluation)
{
     return evaluation ? value : MvcHtmlString.Empty;
}

所以你可以使用这个:

@Html.ActionLink("Create New", "Create").If(User.IsInRole("Administrators"))

这种方式是清晰易读的

http://stackoverflow.com/questions/6981853/asp-net-mvc3-razor-display-actionlink-based-on-user-role

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – asp.net MVC3 razor:基于用户角色显示actionlink