Asp.Net-核心传递JavaScript函数到局部视图
Asp.Net-Core pass JavaScript function to partial view
使用 asp.net-core 我制作了一个“PopUp.cshtml”文件:
<div class="popUpDeleteBackground" hidden>
<div class="popUpDelete">
<h3>Are you sure you want to delete this?</h3>
<p>This action is irreversible</p>
<div class="popUpDeleteButtonDiv">
<button class="btn deleteConfirm">JA</button>
<button class="btn" onclick="PopUpRemove()">NEE</button>
</div>
</div>
</div>
<script>
function PopUpShow(licensePlate) {
$(".popUpDeleteBackground").attr("hidden", false);
$(".deleteConfirm").on("click", () => {
Delete(licensePlate);
PopUpRemove();
});
}
function PopUpRemove() {
$(".popUpDeleteBackground").attr("hidden", true);
}
</script>
我希望在网站的多个页面中使用此弹出部分。问题是每个页面的删除功能都不一样。
所以我的问题是:有没有办法将 JavaScript 函数传递给局部视图?
到目前为止我尝试过的是用 @await Html.PartialAsync("_ConfirmPopUp", "functionToRun()");
传递一个字符串,然后尝试用 <script>@Model</script>
.
传递一个字符串 运行
但是我在控制台中收到一条错误消息:“Uncaught SyntaxError: Unexpected token '&'”。
您正在将 functionToRun()
作为字符串传递给视图的模型。相反,只需传递不带括号的函数名称 - functionToRun
.
那代码里就不要写<script>@Model</script>
了。而是在页面加载时动态地放置调用函数的名称,如下所示:
<script>
function PopUpShow(licensePlate) {
$(".popUpDeleteBackground").attr("hidden", false);
$(".deleteConfirm").on("click", () => {
//Delete(licensePlate);
@string.Format("{0}();", Model)
PopUpRemove();
});
}
function PopUpRemove() {
$(".popUpDeleteBackground").attr("hidden", true);
}
</script>
这将呈现单击 .deleteConfirm
元素时调用的函数的名称。请注意 @string.Format("{0}();", Model)
代码而不是 Delete
函数调用。
使用 asp.net-core 我制作了一个“PopUp.cshtml”文件:
<div class="popUpDeleteBackground" hidden>
<div class="popUpDelete">
<h3>Are you sure you want to delete this?</h3>
<p>This action is irreversible</p>
<div class="popUpDeleteButtonDiv">
<button class="btn deleteConfirm">JA</button>
<button class="btn" onclick="PopUpRemove()">NEE</button>
</div>
</div>
</div>
<script>
function PopUpShow(licensePlate) {
$(".popUpDeleteBackground").attr("hidden", false);
$(".deleteConfirm").on("click", () => {
Delete(licensePlate);
PopUpRemove();
});
}
function PopUpRemove() {
$(".popUpDeleteBackground").attr("hidden", true);
}
</script>
我希望在网站的多个页面中使用此弹出部分。问题是每个页面的删除功能都不一样。
所以我的问题是:有没有办法将 JavaScript 函数传递给局部视图?
到目前为止我尝试过的是用 @await Html.PartialAsync("_ConfirmPopUp", "functionToRun()");
传递一个字符串,然后尝试用 <script>@Model</script>
.
传递一个字符串 运行
但是我在控制台中收到一条错误消息:“Uncaught SyntaxError: Unexpected token '&'”。
您正在将 functionToRun()
作为字符串传递给视图的模型。相反,只需传递不带括号的函数名称 - functionToRun
.
那代码里就不要写<script>@Model</script>
了。而是在页面加载时动态地放置调用函数的名称,如下所示:
<script>
function PopUpShow(licensePlate) {
$(".popUpDeleteBackground").attr("hidden", false);
$(".deleteConfirm").on("click", () => {
//Delete(licensePlate);
@string.Format("{0}();", Model)
PopUpRemove();
});
}
function PopUpRemove() {
$(".popUpDeleteBackground").attr("hidden", true);
}
</script>
这将呈现单击 .deleteConfirm
元素时调用的函数的名称。请注意 @string.Format("{0}();", Model)
代码而不是 Delete
函数调用。