我正在構建一個剃須刀頁面應用程式,并且我想使用模式作為區域視圖。
Foreach 回圈從我打開模式的地方:
@foreach (var item in Model.SourceFiles)
{
<tr>
<td>@item.Id</td>
<td>@item.FileName</td>
<td>@item.Created</td>
<td>
@(item.IsConverted == true ? "Exported" : "Imported")
</td>
<td>
<button type="submit" class="btn btn-primary" asp-page-handler="FileContent" asp-route-fileId="@item.Id">View</button>
</td>
<td>
@if ((await authorizationService.AuthorizeAsync(User, "DeletePolicy")).Succeeded)
{
<a href="#" class="btn btn-danger" onclick="triggerDeleteModal(@item.Id)">Delete</a>
}
</td>
</tr>
}
我正在嘗試使用 javaScript (jQuery) 設定 asp-route-id 標記的新值,但我無法讓它作業。
function triggerDeleteModal(itemId) {
$('#' 'deleteModal').modal('toggle');
$("#confirmDeleteButton").attr('asp-route-deleteid', itemId)
}
模態(部分視圖):
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalTitle">Caution!</h5>
</div>
<div class="modal-body">
<p style="white-space: pre-wrap;">@Model.DeleteModalText</p>
<p></p>
</div>
<div class="modal-footer">
<button type="submit" id="confirmDeleteButton" class="btn btn-secondary" data-bs-dismiss="modal">Yes</button>
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">No</button>
</div>
</div>
</div>
</div>
當在模式中按下是按鈕 (#confirmDeleteButton) 提交表單時,id 不會在 asp-route-deleteid 標簽助手中傳遞,并且在 OnPost 方法中 id 始終為 0。
deleteid 始終為 0 的代碼:
public async Task<IActionResult> OnPostAsync(int deleteid)
{
//code for deleting stuff
}
當嘗試控制臺記錄除 asp-route 標記之外的任何屬性的值時,會顯示該值。嘗試記錄 asp-route 標記的值時,該值未定義。
關于如何將 asp-route-deleteid 傳遞給后面的代碼的任何想法?
BR
uj5u.com熱心網友回復:
該asp-route-*屬性適用于標簽助手,它們是服務器端組件。它不會呈現給瀏覽器,并且 JavaScript 無法訪問。它旨在與具有href,action或formaction屬性的元素一起使用,它可以將屬性值添加到生成的 href 的查詢字串中,或??者作為 URL 段,具體取決于目標頁面的路由模板。
通常,您不應該POST在 URL 中傳遞資料,因此,您可以將 click 事件處理程式連接到confirmDeleteButton啟動傳遞 deleteid 的 AJAX 帖子的事件處理程式:
$('#confirmDeleteButton').on('click, function(){
$.post('/yourpage',{deleteid: itemId}, function(){
// process the call back
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/426957.html
