Как избежать рендеринга Asp. net основных страниц бритвы при перенаправлении? - PullRequest
1 голос
/ 03 февраля 2020

У меня есть код в начале моего метода OnGet, который в основном говорит просто проверяет, существует ли параметр строки запроса, и если нет, устанавливает перенаправление на объект Response и возвращает.

Что я нахожу заключается в том, что он все еще пытается отобразить страницу, в результате чего возникает исключение NullReferenceException.

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

Есть ли способ сказать asp. net core 3.x, что не нужно рендерить страницу бритвы?

1 Ответ

1 голос
/ 04 февраля 2020

Комментарий Майка Бринда дал мне то, что мне было нужно, чтобы найти решение. Вам необходимо настроить методы OnGet / Post, чтобы они возвращали IActionResult и возвращали объект RedirectToPageResult.

public IActionResult OnGet() {
    var queryParam = Request.Query["queryParam"].ToString();
    if(string.IsNullOrWhiteSpace(queryParam))
        return new RedirectToPageResult("OtherPageName");

    // do stuff
    return new PageResult();
}
...