带有 id 的 asp.net core 2 razor pages 路由
Posted
技术标签:
【中文标题】带有 id 的 asp.net core 2 razor pages 路由【英文标题】:asp.net core 2 razor pages route with id 【发布时间】:2018-02-17 02:19:21 【问题描述】:有两个页面,一个是Edit page,另一个是Main Detail page,它是一些实体的组合数据 在编辑页面中: 编辑完成后,我将数据发布到 API,如下所示
public async Task<IActionResult> OnPostAsync(Guid id)
ManufacturerAuthorizedPerson.Id = id;
ManufacturerAuthorizedPerson.ManufacturerId = GetManufacturerId(id);
if (!ModelState.IsValid)
await OnGetAsync(id);
return Page();
HttpResponseMessage = await httpSystemApi.PutAsync("ManufacturerAuthorizedPersons", ManufacturerAuthorizedPerson);
if (HttpResponseMessage.IsSuccessStatusCode)
return RedirectToPage("../Detail", ManufacturerAuthorizedPerson.ManufacturerId);
else
await OnGetAsync(id);
return Page();
OnPostMethod(Guid id)中的ID是编辑实体的值。我正在使用该值并让另一个值在 below 的路径中使用以获取详细信息页面。
ManufacturerAuthorizedPerson.ManufacturerId = GetManufacturerId(id);
但在详细信息页面上,值来自我从编辑页面发布方法发送的路由 ID,如下所示
return RedirectToPage("../Detail", ManufacturerAuthorizedPerson.ManufacturerId);
不显示为路由 URL。而不是 ID 与我发送到编辑页面的相同。 有点迷茫。 需要帮助。
【问题讨论】:
为什么不能重定向到行动?检查this SO RedirectToAction with parameter的可能重复 编辑页面位置:Pages/X/Y/Edit 和 Detail 页面位置 Pages/X/Detail 所以我使用 RedirectToPage 方法。 【参考方案1】:突然间,我找到了解决这个问题的简单方法。你应该输入:
return RedirectToPage("../Detail", new id = ManufacturerAuthorizedPerson.ManufacturerId);
【讨论】:
以上是关于带有 id 的 asp.net core 2 razor pages 路由的主要内容,如果未能解决你的问题,请参考以下文章
在 2 个控制器 ASP.NET Core 3.1 MVC 之间传递 ID
带有 EF Core 更新实体的 ASP.Net 核心 Web Api 如何
ASP.NET Core 2.1 Razor 页面返回带有模型的页面
带有 Windows 身份验证的 ASP.NET Core 2.1 自定义 RoleProvider