Переданное значение не сохраняется - PullRequest
0 голосов
/ 07 февраля 2019

Не MVC!

Привет всем,

Что я здесь не так делаю ...

Я пытаюсь передать целочисленное значение из метода onPost RazorСтраница (Scores / Create.cshtml) в методе onGet другой страницы (/Scores/Index.cshtml), однако значение не сохраняется, и я получаю нулевое значение или 0 при проверке значения id в методе onGet в зависимости от того, как яотправить целое число.

Я знаю, что это работает с использованием маршрутов, как я делаю это на другой странице

<a asp-page="/Scores/Index" asp-route-id="@item.ElementId">Update scores</a> 

Я попытался передать значение из свойства объекта, как в примере кода ниже, изПеременная ViewData, также из локально созданного целого числа и, наконец, просто передавая само целочисленное значение.Во всех случаях значение является правильным в OnPost, но никогда не попадает в onGet.

OnPost

    public async Task<IActionResult> OnPostAsync()
    {
        if (!ModelState.IsValid)
        {
            return Page();
        }

        _context.TScores.Add(TScores);
        await _context.SaveChangesAsync();

        return RedirectToPage("./Index","OnGet",TScores.ElementId);
    }

OnGet

    public async Task OnGetAsync(int? id)
    {  
            TElements telement = new TElements();

            telement =  _context.TElements.Where(a => a.ElementId == id).FirstOrDefault();

Я также пробовалбез установки имени метода OnGet в RedirecttoPage

Я ожидаю получить значение id в onGet для соответствия TScores.ElementID, переданному из onPost.

Заранее спасибо

D

1 Ответ

0 голосов
/ 07 февраля 2019

Параметру требуется объект, в частности, анонимный объект значений маршрута;он не знает, что делать с int.

return RedirectToPage("./Index", new { id = TScores.ElementId });
...