[英]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>
問題:
當您運行代碼時,您可以在控制台 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.