我正在使用带有剃刀的asp.net mvc。如何隐藏仅供管理员使用的链接?
答案 0 :(得分:1)
您可以在视图模型上声明一个布尔属性:
public class MyViewModel
{
public bool IsAdmin { get; set; }
... some other model properties
}
并在您的视图中:
@if (Model.IsAdmin)
{
<!-- show the link that only administrators are supposed to see -->
@Html.ActionLink("Do something very special", "Bar")
}
当然,在渲染此视图的控制器操作中,您将填充此视图模型:
[Authorize]
public ActionResult Foo()
{
var model = new MyViewModel
{
IsAdmin = User.IsInRole("Admin")
};
return View(model);
}
显然,只有管理员可以调用的Bar操作也应该使用Authorize
属性进行修饰:
[Authorize(Roles = "Admin")]
public ActionResult Bar()
{
...
}