web-dev-qa-db-ja.com

asp.netコア2かみそりページはIDでルーティングします

2つのページがあります編集ページと他のメイン詳細ページこれは、いくつかのエンティティのデータを組み合わせたものです編集ページ内:編集が完了し、データを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は、編集されたエンティティの値です。私は値を使用していて、詳細ページを取得するためにルートで使用する他の1つを以下として取得します。

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を正常に送信することができます。

10
S. Aziz Kazdal

突然、私はこの問題の簡単な解決策を見つけました。次のように入力してください:

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