我想对某些操作创建权限,例如创建或更新信息(但不用于显示)。 为此,我要在所有必要方法之前添加属性,例如

[Permissions(Permissions.Admin)]
public ActionResult Create()
{
   //...
}

此外,我不想让索引页面上的链接保持活动状态。 因此,我必须在视图内部添加一些检查。

@if (checking...)
{
    @Html.ActionLink("Create New", "Create")  

}

我添加的检查越多,就越无聊,并且我需要记住的东西也越多。 怎么做对?

===============>>#1 票数:3 已采纳

您可以为此创建一个HtmlHelper。

@Html.ActionLinkUsingPermissions("Create New", "Create",Permissions.Admin)

HtmlHelper将根据当前用户的权限来决定是否显示链接。

===============>>#2 票数:2

您可以创建视图的只读版本,然后让控制器确定它应该返回哪个版本(基于您的许可)。

然后可以在局部视图中外部化共享的UI。

建议尽可能使您的视图脱离业务逻辑。

===============>>#3 票数:1

您还可以创建两个不同的视图模型。 一种用于读/写,另一种用于读。 然后使用“ 查看模板”功能,您可以让一个视图自动选择正确的模板以使用此行显示:

@Html.DisplayForModel()

  ask by Shymep translate from so

未解决问题?本站智能推荐:

1回复

从同一视图获取值后,从控制器的视图中传递值

我是MVC的新手。 我想从视图中获取“ fromDate”和“ ToDate”。 在同一视图中,我需要三个DropDownLists,它们是空的并且是隐藏的。 单击提交按钮后,这些DropDownLists应该可见,并根据选择的日期填充数据。 但是我在视图页面上收到“空引用”错误
3回复

asp.net mvc 3剃须刀一个视图中有两个控制器

想要在一个视图中使用两个模型。 我有两个控制器,一个用于当前用户 第二个朋友 个人档案模型始终包含一个项目,而朋友模型包含列表 我制作了包含两个模型的新模型: 我试图像这样填充FullProfile模型 但是Visual Studio在.ToList()上
5回复

Asp.Net Mvc - 如何在共享视图中拥有“控制器”

我的_Layout.cshtml中有一个名为“_Header.cshtml”的标题的共享视图。 我想从数据库中显示文本和图像,所以我需要我的控制器进入数据库并将其返回到_Header.cshtml。 我怎么能这样做,因为所调用的控制器总是与用户每个页面不同。 有没有办法让控制器使用
1回复

检查控制器是否属于特定的“控制器组”

在ASP.NET MVC中,即时消息会覆盖OnException,因此我可以对异常执行一些自定义错误处理。 我想在这里做的一件事是记录从Web应用程序中哪个区域发生了错误。 例如,在Web应用程序中有Webshop和Administration区域。 然后,我想确定异常是来自Websh
3回复

从视图访问用户权限的最佳方法

在我的ASP.NET MVC站点中,我的设置允许用户拥有角色,并且角色具有权限。 通常,这些权限是为控制器设置的。 在我的网站的主导航菜单中,经过身份验证的用户可以查看所有项目,即使它们无权访问该页面也是如此。 目前,我只能在用户通过身份验证的情况下基于菜单进行配置: 我想知道
1回复

如何检查控制器的每个动作的会话?

我有一个名为AllEntities的控制器,它具有多个操作,例如GetEntityByTypeId和GetLastEntity 每当使用AllEntities控制器时,我都想进行会话检查 像假设我请求一个URL http://localhost:59656/AllEntities/G
2回复

调试-将数据从控制器传递到视图

我有一个收藏: 我创建了该集合的模型: 我正在尝试搭建“现场”的视图模型。 但是当我编译时,出现以下错误: 该视图需要以下模型类型:
3回复

MVC:将数据从控制器传递到视图

我如何在不对视图进行任何操作的情况下实现从控制器向视图传递数据。 在我的项目中 事件处理程序将在控制器中引发一个事件,该事件将更改MVC中的视图数据。 我一直在寻找答案,我知道应该采取一些措施,但我不需要。 EventHandler将引发一个事件,该事件将数据传递给视图
1回复

在控制器上下文之外获取视图

有什么方法可以从另一个Controller获取一个Controller的视图吗? 例如,我的HelperController具有用于整个项目的几种方法,并且我具有在CursosController上调用的MontaCursosWall函数,并且此函数需要读取属于CursosControll
3回复

如何将模型从视图传递到控制器

我有以下视图页面, 我想将此视图页面的所有值传递给控制器​​作为将这些值插入新表的参数。如何实现这一点?