Почему возникает исключение System.InvalidOperationException при использовании RedirectToPage() с сообщением о том, что страница 'Chat' не соответствует предоставленным значениям?

Как настроить перенаправление из метода `OnPost` на страницу `Chat` с передачей `ChatId` в `ASP.NET Core`?
  • 27 апреля 2024 г. 19:50
Ответы на вопрос 2
System.InvalidOperationException возникает, когда метод RedirectToPage() пытается перенаправить на страницу, которая не соответствует предоставленным значениям в маршрутизации. Это может произойти, если URL страницы, указанной в RedirectToPage(), не соответствует маршрутизации в приложении.

Чтобы настроить перенаправление из метода OnPost на страницу Chat с передачей ChatId в ASP.NET Core, нужно сначала добавить параметр ChatId к методу OnPost, который будет принимать значение ChatId из формы или из другого источника данных.

Пример:

```csharp
public IActionResult OnPost(int chatId)
{
    // обработка данных и логика
        
    return RedirectToPage("/Chat", new { chatId = chatId });
}
```

Затем нужно убедиться, что страница Chat имеет правильное определение в маршрутизации, чтобы она могла принять ChatId:

```csharp
@page "/Chat/{chatId}"
```

И наконец, на странице Chat можно использовать параметр chatId:

```csharp
@page "/Chat/{chatId}"

@{
    var chatId = Context.Request.RouteValues["chatId"];
}

<h1>ChatId: @chatId</h1>
```

Теперь при перенаправлении на страницу Chat с передачей ChatId, вы не должны получать исключение System.InvalidOperationException.
Так модели нам зачем? Вы контроллер покажите. Вы же редирект делаете не В МОДЕЛЬ, а на другой эндпоинт
Похожие вопросы