带有id的asp.net core 2 razor pages route

时间:2017-09-08 08:10:37

标签: c# asp.net-core-2.0 razor-pages

有两个页面是编辑页面,另一个是主要详细信息页面,它是某些实体的组合数据 在编辑页面中: 编辑完成后,我将数据发布到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是已编辑实体的值。我正在使用该值并将另一个用于路线中 以获取详细信息页面。

ManufacturerAuthorizedPerson.ManufacturerId = GetManufacturerId(id);

但在详细信息页面上,我从编辑页面发送的路径ID的值发布方法如下

 return RedirectToPage("../Detail", ManufacturerAuthorizedPerson.ManufacturerId);

不显示为路径URL。而不是ID与我发送到编辑页面相同。 有点困惑。 需要帮助。

EDİT:

更改了路线谷,如下所示:

 if (HttpResponseMessage.IsSuccessStatusCode)
        {                
            return RedirectToPage("../Detail", new {id = ManufacturerAuthorizedPerson.ManufacturerId });
        }

我能够成功发送ID。

1 个答案:

答案 0 :(得分:3)

突然我找到了解决这个问题的简单方法。您应该输入:

return RedirectToPage("../Detail", new {id = ManufacturerAuthorizedPerson.ManufacturerId});