我有MVC解决方案,Web端为普通用户,Admin端为特定用户。
我有很多Web和Admin端的JS和CSS文件。 因为我只想在管理员面板中登录时加载大量脚本包。当某些用户访问我的网站时,不应加载这些管理面板脚本。
因为我正在加载BundlesConfig.cs中的所有文件并且想要,所以这些管理文件也为普通用户加载。我只想限制那种页面超载头。
我尝试为管理员视图创建自定义BundlesConfig.cs但坚持使用它。 请任何能帮助我优化网站的人。
(仍有任何疑问请注意我会相应更新)
谢谢
答案 0 :(得分:1)
您可以根据.cshtml页面或_Layout页面中的用户角色加载脚本和样式。
@{
if (User.IsInRole("Admin"))
{
//Update this portion with path of required bundles
@Scripts.Render("~/bundles/jquery")
}
else
{
//Update this portion with path of required bundles
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
}
}
答案 1 :(得分:0)
将最低要求的JS和CSS文件放入捆绑包中。应使用不同的包创建剩余。
请确保所有需要的CSS和JS都是特定于页面或模块的,我会说管理页面只在页面上添加这些包,而不是_layout页面。
使用脚本部分
function advertica_lite_widgets_init() { register_sidebar(array( 'name' => 'Page Sidebar', 'id' => 'page-sidebar', 'before_widget' => '<li id="%1$s" class="ske-container %2$s">', 'after_widget' => '</li>', 'before_title' => '<h3 class="ske-title">', 'after_title' => '</h3>', )); register_sidebar(array( 'name' => 'Blog Sidebar', 'id' => 'blog-sidebar', 'before_widget' => '<li id="%1$s" class="ske-container %2$s">', 'after_widget' => '</li>', 'before_title' => '<h3 class="ske-title">', 'after_title' => '</h3>', )); register_sidebar(array( 'name' => 'Footer Sidebar', 'id' => 'footer-sidebar', 'before_widget' => '<div id="%1$s" class="ske-footer-container span3 ske-container %2$s">', 'after_widget' => '</div>', 'before_title' => '<h3 class="ske-title ske-footer-title">', 'after_title' => '</h3>', )); }
并在页面上的该部分添加您的脚本
@section scripts { }
将页面特定脚本放在页面上