web-dev-qa-db-fra.com

asp.net core 2 razor pages route avec id

Il y a deux pages, l'une est Éditer la page et l'autre est Page principale de détail qui est les données combinées de certaines entités Dans la page d'édition: après l'édition terminée et j'ai publié les données sur l'API comme ci-dessous

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();
        }
    }

L'ID dans OnPostMethod (Guid id) est la valeur de l'entité éditée. J'utilise la valeur et j'utilise l'autre comme route ci-dessous pour obtenir la page de détails.

ManufacturerAuthorizedPerson.ManufacturerId = GetManufacturerId(id);

mais sur la page de détails, la valeur provenant de l'ID d'itinéraire que j'ai envoyé à partir de la méthode de publication des pages d'édition comme ci-dessous

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

ne s'affiche pas comme URL de route.Au lieu de l'ID, c'est la même chose que j'ai été envoyée à la page d'édition. Un peu confus. Besoin d'aide s'il vous plaît.

ÉDITER :

changé la route vale comme ci-dessous:

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

et je peux envoyer l'ID avec succès.

10
S. Aziz Kazdal

Soudain, j'ai trouvé une solution simpe à ce problème. Vous devez taper:

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