Перед загрузкой страницы мне нужно выполнить проверку на уровне безопасности пользователя. Это определит, какие элементы нашей навигационной панели они могут видеть. Я пробовал два метода при запуске этого вызова ajax, как внутри функции $(document).ready
.Сделать вызов Ajax до загрузки страницы
(The div
имени container
охватывает ul
в приведенной ниже HTML)
$(document).ready(function ($) {
//First attempt
$('#container').load(
$.ajax({
type: 'GET',
url: '@Url.Action("CheckSecurity","Home")'
})
);
//Second attempt
window.onload = function() {
$.ajax({
type: 'GET',
url: '@Url.Action("CheckSecurity","Home")'
});
};
});
Поскольку это 3-сайт ASP MVC, я установить точку останова в методе CheckSecurity
. Я не могу сказать, что ни один звонок не работает из-за того, что он никогда не срабатывает.
метод управления приведен ниже
public ActionResult CheckSecurity()
{
ViewBag.UserName = Security.GetUserName(User);
ViewBag.Admin = Security.IsAdmin(User);
ViewBag.ITsupport = Security.IsItSupport(User);
ViewBag.Read = Security.IsViewer(User);
ViewBag.Modify = Security.IsModifier(User);
return View();
}
Это должно проверить уровень безопасности пользователя, установите значение boolean
в ViewBag, а затем определить, является ли или не отображать Admin Features
выпадающий пункт ниже
<li class="dropdown">
<a href="#"
class="dropdown-toggle"
data-toggle="dropdown"
data-hover="dropdown">
Admin
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>@Html.MenuLink("Products", "Index", "Product")</li>
<li>@Html.MenuLink("Product Training", "Index", "Course")</li>
<li>@Html.MenuLink("Continuing Ed", "Index", "ContEdCourse")</li>
@if (ViewBag.Admin)
{
<li>@Html.MenuLink("Admin Features", "Index", "DropDownValues")</li>
}
</ul>
</li>
Когда страница пытается загрузить, вместо этого он падает с этой ошибкой, указывающей на @if (ViewBag.Admin)
линии:
Cannot convert null to 'bool' because it is a non-nullable value type
Любая помощь/предложения были оценены. Спасибо!
У вас есть элемент с контейнером id =? и имеет ли этот элемент событие нагрузки? (только сценарии изображений iframes и окно имеют события загрузки). вторая попытка должна была сработать. –