C# 如何在HTML字符串中使用User.IsInRole()?

C# 如何在HTML字符串中使用User.IsInRole()?,c#,asp.net-mvc,asp.net-mvc-4,razor,asp.net-identity,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,Asp.net Identity,我有一个MVC5项目,根据用户的角色显示/隐藏一些菜单。另一方面,我使用DataGrid和一些图标获取详细信息,通过HTML字符串更新和删除操作,并且需要在这个HTML字符串中实现User.IsInRole。我该怎么做 查看剃须刀: 看起来您正在javascript函数中构建一个HTML字符串,其中使用了Razor语法。在这种情况下,我建议你做如下 最初将字符串设置为C变量 @{ string additionalString = Request.IsAuthenticated &&a

我有一个MVC5项目,根据用户的角色显示/隐藏一些菜单。另一方面,我使用DataGrid和一些图标获取详细信息,通过HTML字符串更新和删除操作,并且需要在这个HTML字符串中实现User.IsInRole。我该怎么做

查看剃须刀:


看起来您正在javascript函数中构建一个HTML字符串,其中使用了Razor语法。在这种情况下,我建议你做如下

最初将字符串设置为C变量

@{
 string additionalString = Request.IsAuthenticated && User.IsInRole("Admin") ? "<a title='Edit' id='lnkEdit' ></a>" : "";
}
在中,您可以使用@和您的变量名访问C变量

注意:不要错过@additionalString

编辑:在提供更多详细信息后,最好在JavaScript中设置一个变量,该变量根据User.IsInRoleAdmin保存true或false。为此,请将这部分代码添加到视图页面中

@{
 string isAdmin = Request.IsAuthenticated && User.IsInRole("Admin") ? true : false;
}
现在将其分配给javascript变量,如

<script>
  var UserIsAdmin = @Html.Raw(@isAdmin); // assign C# variable to JavaScript variable.
</script>

为什么这段代码用大括号括起来?为什么会有返回声明?为什么HTML字符串用单引号包装?什么是不工作?请阅读并提供一份,重点是完整的。我认为,为了简洁起见,您无意中删除了太多的上下文。这段代码是否在javascript/jquery函数中??@rajshekarredy是的,在jquery数据表中。@ClintEastwood哦。。如果你能用相关的代码更新你的问题会更好。谢谢,我试过了,但没有成功:我也试过在{..}字段中构建一个结果,但没有成功。还有其他方法吗?@ClintEastwood你想在javascript块中编写Razor代码吗?谢谢你的快速回复,我更新了相关代码。请同时查看$document.on'click',lnkStudentDetails',function{…}字段。我也可以在那里查看角色。你太棒了!。。非常感谢您的完美解决方案。投票+
@{
 string isAdmin = Request.IsAuthenticated && User.IsInRole("Admin") ? true : false;
}
<script>
  var UserIsAdmin = @Html.Raw(@isAdmin); // assign C# variable to JavaScript variable.
</script>
 "render": function (data, type, full, meta) {

    var renderHtml = '<a title="Details" id="lnkStudentDetails"></a>';

    if(UserIsAdmin){
      renderHtml +='<a title="Edit" id="lnkStudentEdit" ></a>';
    }

     renderHtml += '<a title="Delete" id="lnkStudentDelete" ></i></a>';
    return renderHtml;                               
   }
$(document).on('click', '#lnkStudentDetails', function () { 
    //  UserIsAdmin variable can be used to check if user is admin or not.
});