【发布时间】:2021-04-09 04:21:48
【问题描述】:
我有一个 .net 核心 Razor 页面应用程序,其中我有父子关系。
父是PositionSummary,子是PositionDetail。
PosSumList.cshtml 页面是一个网格/表格页面,类似于标准索引页面,代码如下:
@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>
}
靠近底部的是这条线
<a asp-page="/PositionDetail/Index" asp-route-id="@item.PositionId">Position Details</a> |
我要做的是从 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();
}
}
}
但是当我在上面的 cshtml 代码中编译并尝试使用上面的链接进行导航时,它没有找到该页面,当我在浏览器中查看执行 F12 的结果时,它给我一个 404 not found 错误。
如何在 .net core Razor 页面中从一个文件夹和页面导航到不同的文件夹和页面? PositionSummary 和 PositionDetail 文件夹都只是标准 Razor Page 应用程序中的文件夹 - 'Pages' 文件夹...
感谢您的任何建议。我怀疑它显然是一个路由问题......
【问题讨论】:
-
如果这不能解决您的问题,您可以提供有关此问题的更多详细信息。
-
由于某种原因,该页面不允许我对您上面的答案发表评论。上面回答银秋:刚才查了一下。是的 - 这有效!如果我理解正确,则需要 ../PositionDetail/Index 中的额外句点使其看起来超出现有页面的现有文件夹。我猜每个额外的时期都会在层次结构中再增加一个文件夹谢谢
-
如何标记为答案?
-
你可以看到here。谢谢!
标签: c# asp.net-core .net-core razor razor-pages