使用 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>.
但是我在控制臺中收到一條錯誤訊息:“未捕獲的語法錯誤:意外的標記 '&'”。
uj5u.com熱心網友回復:
您將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函式呼叫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362211.html
標籤:javascript asp.net-mvc asp.net核心 局部视图 asp.net-mvc-partialview
