如何在同一个.net MVC项目中加载单独的JS和CSS包?

时间:2017-01-02 13:53:31

标签: c# asp.net-mvc

我有MVC解决方案,Web端为普通用户,Admin端为特定用户。

我有很多Web和Admin端的JS和CSS文件。 因为我只想在管理员面板中登录时加载大量脚本包。当某些用户访问我的网站时,不应加载这些管理面板脚本。

因为我正在加载BundlesConfig.cs中的所有文件并且想要,所以这些管理文件也为普通用户加载。我只想限制那种页面超载头。

我尝试为管理员视图创建自定义BundlesConfig.cs但坚持使用它。 请任何能帮助我优化网站的人。

(仍有任何疑问请注意我会相应更新)

谢谢

2 个答案:

答案 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 {          }

将页面特定脚本放在页面上