C# 如何在jqgrid中有条件地显示链接?

C# 如何在jqgrid中有条件地显示链接?,c#,jquery,asp.net-mvc,asp.net-mvc-3,jqgrid,C#,Jquery,Asp.net Mvc,Asp.net Mvc 3,Jqgrid,我有一个jqgrid,我有一个自定义的格式化程序,它可以根据我的需要格式化和显示链接。这确实很好,但我有一个问题。我想有条件地显示链接。我该怎么做 例如如果此人是管理员,则向他显示所有链接,如编辑、删除等(这些链接映射到控制器中的操作方法)。但如果此人不是管理员用户,则仅显示视图链接并隐藏所有其他链接 我只需要一个如何实现这一目标的总体策略。其中一个策略是在json数据中添加一个布尔字段,这将表示是否显示编辑、删除等链接。然后在我的格式化程序中,我可以查看行数据并决定是否返回show link

我有一个jqgrid,我有一个自定义的格式化程序,它可以根据我的需要格式化和显示链接。这确实很好,但我有一个问题。我想有条件地显示链接。我该怎么做

例如如果此人是管理员,则向他显示所有链接,如编辑、删除等(这些链接映射到控制器中的操作方法)。但如果此人不是管理员用户,则仅显示视图链接并隐藏所有其他链接

我只需要一个如何实现这一目标的总体策略。其中一个策略是在json数据中添加一个布尔字段,这将表示是否显示编辑、删除等链接。然后在我的格式化程序中,我可以查看行数据并决定是否返回show link


有更好的方法吗?

您建议在服务器的JSON响应中添加额外的数据,这听起来不错。值得一提的是,您应该以任何方式防止非管理员编辑数据。隐藏或不创建用于编辑的链接不是安全特性,但主要是GUI改进,以防止不允许的操作。如果您在实现中遇到一些技术问题,您应该在问题中包含相应的代码


如果您另外使用表单编辑,那么from或from也会对您有所帮助。

谢谢Oleg。我知道隐藏链接只是GUI的改进。服务器端安全完全是另一回事。我可以使用[Authorize(Roles=“Admin”)]或类似的工具来实现这一点。@Anthony:不客气!例如,在ASP.NET MVC操作中可以很好地使用
[Authorize(Roles=“Admin”)]
。您应该只自定义在权限较低时将向用户显示的消息。这样用户就可以清楚地了解失败的原因。这就是我不理解的。如何自定义消息?实际上,如果用户不是管理员,它会抛出用户登录url。我正在使用表单身份验证。该属性没有任何选项可用于显示ErrorMessage。也许我可以扩展该属性并设置TempData[“Message”],然后在登录页面上显示该消息。只是一个想法!如果您知道答案,您可以将其张贴到其他位置。如果您想让我创建一个新问题,请让我知道,因为这与问题没有直接关系。@Anthony:我个人不设置
[Authorize(Roles=“Admin”)]
属性并在操作的第一行中验证用户角色。您可以使用我描述的方法来使用
[HandleJsonException]
。在这种情况下,您可以检查将引发哪个授权异常,并自定义服务器的错误响应。嗯,当我第一次查看时,您著名的代码让我目瞪口呆。