[英]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.