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>
问题:
- 在视图渲染后,部分视图内的警报永远不会调用。
- 当我按下按钮时,它没有提醒。
局部视图与父视图一起加载。因此,javascript 命令应该位于父视图而不是局部视图本身。
当您 运行 您的代码时,您可以在控制台 window 中看到以下错误。
Uncaught ReferenceError: $ is not defined
解决方案 - 您应该将 jquery 引用放在 _Layout.cshtml 页面的头部。执行此操作后,您的代码将按预期 运行。
如果您使用的是默认包,那么下面的代码将起作用。
<head>
...
@Scripts.Render("~/bundles/jquery")
</head>
或
<head>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
window.addEventListener 适用于局部视图。
将您的代码放在 addeventlistener 方法中。
例如,此代码仅适用于我的部分视图和 addEventListener。
<script defer>
window.addEventListener("load", function () {
$(document).on("change", "#ddlBirim", function () {
window.location.href = "/@controller/@action/" + $(this).val();
});
});
</script>
也许有人可以帮助我理解调用具有自己的 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>
问题:
- 在视图渲染后,部分视图内的警报永远不会调用。
- 当我按下按钮时,它没有提醒。
局部视图与父视图一起加载。因此,javascript 命令应该位于父视图而不是局部视图本身。
当您 运行 您的代码时,您可以在控制台 window 中看到以下错误。
Uncaught ReferenceError: $ is not defined
解决方案 - 您应该将 jquery 引用放在 _Layout.cshtml 页面的头部。执行此操作后,您的代码将按预期 运行。 如果您使用的是默认包,那么下面的代码将起作用。
<head>
...
@Scripts.Render("~/bundles/jquery")
</head>
或
<head>
...
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
window.addEventListener 适用于局部视图。
将您的代码放在 addeventlistener 方法中。
例如,此代码仅适用于我的部分视图和 addEventListener。
<script defer>
window.addEventListener("load", function () {
$(document).on("change", "#ddlBirim", function () {
window.location.href = "/@controller/@action/" + $(this).val();
});
});
</script>