2013-02-13 30 views
1

我有一個區域的MVC 4網站。我設置了兩個腳本包,一個用於站點需要的所有常見腳本,另一個用於與區域相關的腳本。我使用Scripts.Render()引用常見站點綁定的站點的公共佈局視圖。我有一個用於該區域的第二個佈局視圖,該視圖使用通用佈局視圖,我想呈現特定區域的JavaScript文件,但它不起作用,並且根本沒有渲染任何文件。如果我將包渲染移動到根佈局視圖,它渲染得很好。捆綁Scripts.Render在區域視圖不工作

任何理由爲什麼這在區域視圖中不起作用,我如何才能使其工作?我寧願沒有這些針對特定區域的腳本供所有用戶使用,因爲只有非常小的,已定義的子集實際上需要它們。

通用佈局查看:

@Scripts.Render(@"~/Scripts/all_scripts") 
... 
@RenderSection("Javascript", required: false) 

領域的具體觀點:

@section Javascript { 
    @Scripts.Render(@"~/Scripts/area_scripts") 
    @RenderSection("Javascript", required: false) 
} 

回答

2

我測試了這一點,它似乎是工作的罰款。特定於管理員的腳本在管理員索引視圖中呈現(並且也在管理佈局中工作)。所有捆綁/路徑配置是否正確?

BundleConfig.cs

 bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
        "~/Scripts/jquery-ui-{version}.js")); 

     bundles.Add(new ScriptBundle("~/bundles/jqueryadmin").Include(
        "~/Scripts/Admin/jquery.unobtrusive-ajax-admin*", 
        "~/Scripts/Admin/jquery.validate-admin*")); 

_Layout.cshtml

@Scripts.Render("~/bundles/jqueryui") 
    @RenderSection("Javascript", required: false) 

_AdminLayout.cshtml

@{ 
     ViewBag.Title = "_AdminLayout"; 
     Layout = "~/Views/Shared/_Layout.cshtml"; 
    } 

    <h2>AdminLayout</h2> 
    @section Javascript{ 
     @RenderSection("Javascript", required: false) 
    } 

AdminHome/Index.cshtml

@{ 
     ViewBag.Title = "Index"; 
     Layout = "~/Areas/Admin/Views/Shared/_AdminLayout.cshtml"; 
    } 

    <h2>Index</h2> 


    @section Javascript{ 
     @Scripts.Render("~/bundles/jqueryadmin") 
    } 

希望這有助於。

+0

將包從AdminHome/Index.cshtml渲染到_AdminLayout.cshtml中的JavaScript部分時,它仍然工作嗎? – nt827 2013-02-14 12:41:15

+0

也是在那裏工作。您的第二個佈局是否參考了主佈局? – 2013-02-15 00:43:58