C# 在.net core razor页面中-如何从父记录页面导航到子记录页面?
我有一个.NETCoreRazorPages应用程序,其中我有一个父子关系 父项为PositionSummary,子项为PositionDetail PosSumList.cshtml页面是一个网格/表格页面,类似于标准索引页面,具有以下代码:C# 在.net core razor页面中-如何从父记录页面导航到子记录页面?,c#,asp.net-core,.net-core,razor,razor-pages,C#,Asp.net Core,.net Core,Razor,Razor Pages,我有一个.NETCoreRazorPages应用程序,其中我有一个父子关系 父项为PositionSummary,子项为PositionDetail PosSumList.cshtml页面是一个网格/表格页面,类似于标准索引页面,具有以下代码: @page @model ThePositionerRazor2.Pages.PositionSummary.PosSumListModel @{ ViewData["Title"] = "PosSumLi
@page
@model ThePositionerRazor2.Pages.PositionSummary.PosSumListModel
@{
ViewData["Title"] = "PosSumList";
}
<h1>Position Summary Information</h1>
<p>
<a asp-page="Create">Create New</a>
</p>
<div class="row">
<div class="col-md-12">
<div class="panel panel-primary list-panel" id="list-panel">
<div class="panel-heading list-panel-heading">
<h1 class="panel-title list-panel-title">Position Summary</h1>
</div>
<div class="panel-body">
<table id="Possumlist-data-table"
class="table table-striped table-bordered"
style="width:100%">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Possummary[0].PositionNbr)
</th>
<th>
@Html.DisplayNameFor(model => model.Possummary[0].WorkTitle)
</th>
<th>
@Html.DisplayNameFor(model => model.Possummary[0].Purpose)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.Possummary)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PositionNbr)
</td>
<td>
@Html.DisplayFor(modelItem => item.WorkTitle)
</td>
<td>
@Html.DisplayFor(modelItem => item.Purpose)
</td>
<td>
<a asp-page="./Edit" asp-route-id="@item.PositionId">Edit</a> |
<a asp-page="/PositionDetail/Index" asp-route-id="@item.PositionId">Position Details</a> |
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
</div>
@section Scripts
{
<link href="https://cdn.datatables.net/1.10.15/css/dataTables.bootstrap.min.css" rel="stylesheet" />
<script src="https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.15/js/dataTables.bootstrap4.min.js "></script>
<script type="text/javascript">
$(document).ready(function () {
$('#Possumlist-data-table').DataTable({ "order": [[0, "asc"]] });
});
</script>
}
@page
@为PositionErrazor2.Pages.PositionSummary.PosSumListModel建模
@{
ViewData[“Title”]=“PosSumList”;
}
职位摘要信息
|
我试图做的是从Pages文件夹(PositionSummary)中的一个文件夹导航到Pages文件夹(PositionDetail/Index)中另一个文件夹中的索引页
当我到达那里时,我希望索引页只显示与从PositionSummary中选择的父记录相关的子记录
我预计这将要求我在PositionDetail索引页面的OnGetAsync任务中使用一个参数:
namespace ThePositionerRazor2.Pages.PositionDetail
{
public class IndexModel : PageModel
{
private readonly ThePositionerRazor2.Models.WorkManagerV4Context _context;
public IndexModel(ThePositionerRazor2.Models.WorkManagerV4Context context)
{
_context = context;
}
public IList<Posdetail> Posdetail { get;set; }
public async Task OnGetAsync()
{
Posdetail = await _context.Posdetail
.Include(p => p.Importance)
.Include(p => p.KnowdepthNavigation)
.Include(p => p.Position)
.Include(p => p.TimeSpentNavigation)
.Include(p => p.WorkitemNavigation).ToListAsync();
}
}
}
名称空间PositionErrazor2.Pages.PositionDetail
{
公共类索引模型:PageModel
{
private只读PositionErrazor2.Models.WorkManagerV4上下文\u上下文;
公共索引模型(PositionErrazor2.Models.WorkManagerV4上下文)
{
_上下文=上下文;
}
公共IList Posdetail{get;set;}
公共异步任务OnGetAsync()
{
Posdetail=wait_context.Posdetail
.包括(p=>p.重要性)
.Include(p=>p.KnowdepthNavigation)
.包括(p=>p.位置)
.Include(p=>p.timespuntNavigation)
.Include(p=>p.WorkitemNavigation).toListSync();
}
}
}
但是,当我在上面的cshtml代码中编译并尝试使用上面的链接导航时,它找不到该页面,当我在浏览器中执行F12时,会看到404 not found错误
如何在.net core Razor页面中从一个文件夹和页面导航到另一个文件夹和页面?PositionSummary和PositionDetail文件夹都只是标准Razor页面应用程序-“页面”文件夹中的文件夹
谢谢你的建议。我怀疑这显然是一个路由问题…您可以像下面这样更改代码
<a asp-page="../PositionDetail/Index" asp-route-id="@item.PositionId">Position Details</a> |
职位详细信息|
如果这不能解决您的问题,您可以提供有关此问题的更多详细信息。由于某些原因,该页面不允许我对您的上述答案发表评论。上面的回答殷秋:刚才查过了。是的,成功了!如果我理解正确,../PositionDetail/Index中需要额外的句点,以使其超出现有页面的现有文件夹。我猜每增加一个句点,就会在层次结构上再增加一个文件夹。谢谢。我标记为答案吗?你可以看到。谢谢!
<a asp-page="../PositionDetail/Index" asp-route-id="@item.PositionId">Position Details</a> |