Asp.net

Javascript 在部分視圖中不起作用

  • January 26, 2022

這個問題類似於在 ASP.NET MVC 的局部視圖中執行 Javascript中描述的問題

index.cshtml 中的以下程式碼工作正常…


<label for="locationOfSearch"> in :</label> @Html.TextBox("locationOfSearch")

<input type="submit" value="Search"  style="background-color:Green"/>

@section JavaScript {
   <script type="text/javascript">
       $(document).ready(function () {


           $("#locationOfSearch").autocomplete({
               source: '@Url.Action("AutocompleteAsyncLocations")'
           })



       });
   </script>
}

但是,當我將上述程式碼和相應的腳本文件複製並粘貼到另一個視圖中,然後在 index.cshtml 中呼叫 Html.Partial(新視圖名稱)時,自動完成功能不起作用……

請讓我知道如何在沒有太多修改的情況下解決它…

您不能在局部視圖中使用部分。他們根本不工作。因此,您必須將 保留@section JavaScript在視圖中才能註冊腳本,然後渲染僅包含標記的部分。您還可以編寫自定義輔助方法來實現此目的,如本答案所示。

部分視圖需要引用所有腳本,即使您已經在主/佈局頁面中引用了它。創建一個局部視圖(例如:_Scripts.cshtml)並將所有腳本和样式表引用放入其中。然後在每個視圖中呼叫這個局部視圖:

@Html.Partial("_Scripts")

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