我想为某些操作创建权限,例如创建或更新信息(但不显示)。 为此,我在所有必要的方法之前添加属性,例如。
[Permissions(Permissions.Admin)]
public ActionResult Create()
{
//...
}
此外,我不想让链接在索引页面上保持活动状态。所以我必须在视图中添加一些检查。
@if (checking...)
{
@Html.ActionLink("Create New", "Create")
}
我添加的支票越多,越无聊,我必须记住的东西越多。 怎么做对了?
答案 0 :(得分:3)
你可以为此创建一个HtmlHelper。
像@Html.ActionLinkUsingPermissions("Create New", "Create",Permissions.Admin)
HtmlHelper将根据当前用户权限决定是否显示链接。
答案 1 :(得分:2)
您可以创建一个只读版本的视图,并让控制器决定它应返回哪个版本(根据您的许可)。
然后可以在部分视图中将共享UI外部化。
建议尽可能使您的视图免于业务逻辑。
答案 2 :(得分:1)
您还可以创建两个不同的视图模型。一个用于读/写,一个用于读取。然后使用View Templates功能,您可以让一个视图自动选择要使用此行显示的正确模板:
@Html.DisplayForModel()