我正在寻找ASP.NET MVC 5中的Reacts高阶组件。
因此,我拥有大量控件,应根据安全特权有条件地呈现这些控件。如果用户具有特定的特权,那么他们应该看到该控件。如果没有,则该控件被隐藏。
如果我在viewModel中执行此操作,则需要使用Security Privileges检查来污染我的视图模型构建器,因此我希望通过某种控件来做到这一点。
我希望有这样的东西:
@Html.PermissionCheck(new Privilege[ SecurityPrivilege.CanEdit ]) {
<input type="button" value="Edit" />
}
通过这种方式,我的权限检查代码全部放在一个地方,并且我可以访问用户对象,而无需将其传递给我的所有模型构建器。
我看过各种控制示例,包括:ASP.NET MVC Html Helper
上述问题是将我的控件包装在标准环绕声中似乎很棒。有条件地渲染它的情况就更少了。
不确定如何获取部分视图以接受一组内容。
答案 0 :(得分:2)
HtmlHelper
扩展名仍然可以为您服务:
public static class HtmlHelperExtensions
{
public static bool PermissionCheck(this HtmlHelper helper, Privilege[] privs)
{
...
return true/false;
}
}
然后在您看来:
@if(Html.PermissionCheck(new Privilege[ SecurityPrivilege.CanEdit ]))
{
<input type="button" value="Edit" />
}
有条件地基于Razor引擎提供的@if()
语法进行渲染。
链接的示例过于复杂。这用于需要包装的内容。您所寻找的只是返回一个简单的bool
。