在 Razor Pages 中重定向到具有 ID 的页面
Redirect to Page with ID in Razor Pages
我试图让我的应用程序在更新数据库后重定向到上一页,但我似乎无法弄清楚。更复杂的是,上一页不仅仅是一个简单的页面。它填充了提取的信息,但在数据库中有一个特定的行,所以 URL 有
blah blah blah.../ProjectDetails?id=(the ID number)
我试过使用重定向方法,但它们并不像我希望的那样直接。有人可以帮我弄清楚如何返回上一页吗?
查看
<form method="post">
<select class="custom-select mb-4 col-6" name="Assignee">
<option>John</option>
<option>Jane</option>
<option>Jim</option>
<option>Juju</option>
</select>
<br>
<button type="submit" class="btn btn-info">Save</button>
<a class="btn btn-danger" asp-page="./Teamlead">Cancel</a>
</form>
代码隐藏
public async Task<IActionResult> OnPostAsync(int id)
{
Submission = _SubmissionContext.Submissions
.Where(s => s.ID == id).First();
Submission.AssignedTo = Assignee;
await _SubmissionContext.SaveChangesAsync();
return RedirectToRoute("./ProjectDetails"); //PROBLEM HERE
}
您应该尝试使用您的路由属性在顶部装饰您的 razor 页面视图,如下所示:
@page "{id}"
下面的link应该有助于更多关于路由参数的示例:
https://www.mikesdotnetting.com/article/310/routing-in-razor-pages
您需要将 id 传递给重定向的页面。您可以使用匿名类型来执行此操作,例如:
public async Task<IActionResult> OnPostAsync(int id)
{
Submission = _SubmissionContext.Submissions
.Where(s => s.ID == id).First();
Submission.AssignedTo = Assignee;
await _SubmissionContext.SaveChangesAsync();
return RedirectToRoute("./ProjectDetails", new { id = Submission.ID });
}
我试图让我的应用程序在更新数据库后重定向到上一页,但我似乎无法弄清楚。更复杂的是,上一页不仅仅是一个简单的页面。它填充了提取的信息,但在数据库中有一个特定的行,所以 URL 有
blah blah blah.../ProjectDetails?id=(the ID number)
我试过使用重定向方法,但它们并不像我希望的那样直接。有人可以帮我弄清楚如何返回上一页吗?
查看
<form method="post">
<select class="custom-select mb-4 col-6" name="Assignee">
<option>John</option>
<option>Jane</option>
<option>Jim</option>
<option>Juju</option>
</select>
<br>
<button type="submit" class="btn btn-info">Save</button>
<a class="btn btn-danger" asp-page="./Teamlead">Cancel</a>
</form>
代码隐藏
public async Task<IActionResult> OnPostAsync(int id)
{
Submission = _SubmissionContext.Submissions
.Where(s => s.ID == id).First();
Submission.AssignedTo = Assignee;
await _SubmissionContext.SaveChangesAsync();
return RedirectToRoute("./ProjectDetails"); //PROBLEM HERE
}
您应该尝试使用您的路由属性在顶部装饰您的 razor 页面视图,如下所示:
@page "{id}"
下面的link应该有助于更多关于路由参数的示例:
https://www.mikesdotnetting.com/article/310/routing-in-razor-pages
您需要将 id 传递给重定向的页面。您可以使用匿名类型来执行此操作,例如:
public async Task<IActionResult> OnPostAsync(int id)
{
Submission = _SubmissionContext.Submissions
.Where(s => s.ID == id).First();
Submission.AssignedTo = Assignee;
await _SubmissionContext.SaveChangesAsync();
return RedirectToRoute("./ProjectDetails", new { id = Submission.ID });
}