我有以下代码来检查登录用户是否可以访问菜单项
但如果第一项未通过 if 条件,它将重定向到错误页面,但是我需要使用if条件检查该字符串数组中的第二项,即使第一项未通过if条件...
请找到下面给出的测试代码..
{% block styles %}
{{ super() }}
<link rel="stylesheet" href="{{ url_for('static', filename='locally/placed.css') }}">
{% endblock %}
答案 0 :(得分:2)
你可以通过计算循环中的条件并在确定后在循环外执行动作来使条件成为这样的。
bool access = false;
foreach (string menuPageId in strPageId)
{
if (objDALookup.IsPageVisible(PageType,Int32.Parse(menuPageId), role, AcctId) == true)
{
access = true;
break;
}
}
if(!access)
{
Session["ErrorInfo"] = "Access denied, please contact system administrator.";
new Lib.Utils.Log().logInfo("FORCE_ACCESS", strUser + " tried to access PageId:" + PageId + " PageType:" + PageType);
Response.Redirect(ConfigurationManager.AppSettings["ACCESS_DENIED_URL"], true);
}
OR
您可以使用linq
bool access = strPageId.Any(s=> objDALookup.IsPageVisible(PageType,Int32.Parse(menuPageId), role, AcctId) == true);
if(!access)
{
}