簡體   English   中英

局部視圖中的 ASP.net MVC javascript 未運行

[英]ASP.net MVC javascript in partial view is not running

也許有人可以幫助我了解對具有自己的 javascript 代碼的局部視圖的調用存在什么問題或錯誤。

這是主要的cshtml:

@model  Ads_Negocio.FormTest

@{
    ViewBag.Title = "Reportone";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<div> <p>Parent view</p> </div>
<p>----------Partial view section-----------</p>
<div>
    <p>Partial view</p>
    @Html.Partial("Componente/_aTestView")
</div>

@section scripts{
    <script type="text/javascript">
        $(document).ready(function () {
            alert("parent view renderign")
        });
    </script>
}

部分視圖_aTestView.cshtml:

<button type="button" id="btnGraficNew">Run</button>

<script type="text/javascript">
    $(document).ready(function () {
        alert("partial view rendering");
        $("#btnGraficNew").click("click", function () {
            alert("Call from partial view");
        });
    });
</script>

問題:

  1. 視圖渲染后,局部視圖內的警報永遠不會調用。
  2. 當我按下按鈕時,它不會發出警報。

當您運行代碼時,您可以在控制台 window 中看到以下錯誤。

Uncaught ReferenceError: $ is not defined 

解決方案- 您應該將 jquery 引用放在 _Layout.cshtml 頁面的 head 部分。 一旦你這樣做,你的代碼將按預期運行。 如果您使用的是默認捆綁包,那么下面的代碼將起作用。

<head>
    ...
    @Scripts.Render("~/bundles/jquery")
</head>

或者

<head>
    ...
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>

部分視圖與父視圖一起加載。 因此,javascript 命令應該駐留在父視圖而不是局部視圖本身。

window.addEventListener 適用於部分視圖。

將您的代碼放在 addeventlistener 方法中。

例如,此代碼僅適用於 addEventListener 在我的部分視圖中。

<script defer>
 window.addEventListener("load", function () {
    $(document).on("change", "#ddlBirim", function () {
        window.location.href = "/@controller/@action/" + $(this).val();
    });
 });
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM