Asp.net-Mvc-4

在局部視圖中使用部分

  • April 21, 2016

在我的共享佈局中,我希望有一個“腳本”部分來填充頁面功能所需的所有腳本。

佈局.cshtml

<html>
<head>
   <title>Test</title>
   <script src="@Url.Content("~/Scripts/jquery-2.0.3.js")" type="text/javascript"> </script>

   @RenderSection("Scripts", required: false)

</head>
<body>
   @RenderBody()
</body>
</html>

所以,我的視圖載入了一個特定的 javascript,我希望它位於“腳本”部分,並且它正在工作。

索引.cshtml

@model PlatformaPu.Areas.Inventura.Models.Home.Index

@section Scripts {
   <script src="@Url.Content("~/Areas/Inventura/Scripts/Home/Index.js")" type="text/javascript"></script>
}

{CONTENT REMOVED FOR BREVITY}

@section Footer {
   @Html.Partial("~/Views/Shared/_AppSelector.cshtml", Model.AppSelector)
}

最後,我的視圖呈現了一個部分,並且我有一個該部分載入的 javascript。

_AppSelector.cshtml

@model PlatformaPu.Models.Shared._AppSelector

@section Scripts {
   <script src="@Url.Content("~/Scripts/Shared/_AppSelector.js")" type="text/javascript"></script>
}

{CONTENT REMOVED FOR BREVITY}

…這不起作用- javascript 標記未“腳本”部分呈現

我怎樣才能做到這一點?

正如在這個問題中所討論的,不能在局部視圖中使用部分:

部分在局部視圖中不起作用,這是設計使然。您可以使用一些自定義助手來實現類似的行為,但老實說,包含必要的腳本是視圖的責任,而不是部分的責任。我建議您使用主視圖的 @scripts 部分來執行此操作,而不要讓部分擔心腳本。

您應該將腳本引用添加到引用部分的主視圖。

引用自:https://stackoverflow.com/questions/18183462