c# - 如何在asp.net核心剃须刀页面中显示主/详细模式弹出
问题描述
在我的项目中,弹出窗口正确打开,但模式内没有加载任何数据。我认为问题出在脚本代码上,因为在调试中我注意到 OnGetPermissionAsync 无法通过按 permissionList 按钮运行
它是我的索引
@page "{handler?}"
@model AccessLevel.Areas.AccessLevel.Pages.AdminPanel.IndexModel
@{
}
<table class="table table-striped table-bordered bootstrap-datatable datatable">
<tbody>
@foreach (var item in Model.RoleList)
{
<tr>
<td>@user.RoleTitle</td>
<td class="center">@user.CreateDate</td>
<td class="center">@user.Description</td>
<td>
<button class="btn btn-sm btn-dark details" data-id="@user.Id" data-toggle="modal" data-target="#details-modal">permissionList</button>
</td>
</tr>
}
</tbody>
</table>
<div class="modal fade" tabindex="-1" role="dialog" id="details-modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Permission List</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body"></div>
</div>
</div>
</div>
@section scripts{
<script>
$(function () {
$('button.details').on('click', function () {
$('.modal-body').load(`/Index/Permission?id=${$(this).data('id')}`);
});
})
</script>
}
它是我的 index.cs
public class IndexModel : PageModel
{
private IRoleService roleService;
public IndexModel(IRoleService roleService)
{
this.roleService = roleService;
}
public List<AdminRoleListViewModel> RoleList { get; set; }
public async Task<IActionResult> OnGetAsync()
{
RoleList = await roleService.GetRoleListInViewModel();
return Page();
}
public async Task<PartialViewResult> OnGetPermissionAsync(int id)
{
return Partial("_RolePermissions", await roleService.GetRolePermissionsListAsync(id));
}
}
它是我的 GetRolePermissionsListAsync
public async Task<List<RolePermissionsListViewModel>> GetRolePermissionsListAsync(int roleId)
{
return await dBContext.RolePermissions.Include(r => r.FK_Permission).Where(r => r.FK_RoleID == roleId).Select((r => new RolePermissionsListViewModel()
{
Id = r.ID,
PermissionTitle = r.FK_Permission.Title,
})).ToListAsync();
}
它是我的 _RolePermissions
@model List<AccessLevel.DTOs.RolePermissionsListViewModel>
@foreach (var permission in Model)
{
<div>
<span class="d-inline-block">title:</span><span>@permission.PermissionTitle</span>
</div>
}
解决方案
您的项目是 razor-pages,url 与 mvc 项目不同,url 应该是
$(function () {
$('button.details').click(function () {
$('.modal-body').load(`?handler=Permission&id=${$(this).data('id')}`);
$('#details-modal').modal('show');
});
})
推荐阅读
- javascript - 如何使用getLastRow()删除谷歌应用脚本中列范围内的单元格
- c# - 将用户从 Firebase 迁移到 ASP.NET
- javascript - Javascript Web 组件:this.shadowRoot.querySelector() 总是返回 null
- video - 如何在我的教育网站上存储和托管用户生成的视频?
- jpa - 在 JPA 原生查询中设置 Clob
- node.js - 在 nodejs 应用程序之间共享可变变量
- java - 超时后如何在自定义java过滤器插件中生成logstash事件?
- python - 在 PyCharm 中通过以前的命令进行控制台选项卡
- terraform-provider-azure - 使用 terraform 向服务主体授予 Keyvault 访问策略
- selenium-webdriver - Selenoid:如何在 browser.json 中为 chromium 驱动程序设置主机名