Razor @page маршрутизация на другую страницу - PullRequest
0 голосов
/ 29 февраля 2020

Я использую в качестве pnet core 3.

В контроллере мой пользователь может ввести один URL-адрес, например ... / login ..., а затем я проверяю, какая это компания, и верните правильное представление - как это:

[Route("login")]
public IActionResult Login()
{
    return _company == "a" ? View("ThisView") : View("ThatView");
}

Но если я использую маршрутизацию Razor ... @page "/ login" ... как я могу сделать то же самое? Мне нужно, чтобы пользователь набрал один URL, но затем мне нужно проверить, какая это компания, а затем перейти на правильную страницу бритвы.

1 Ответ

0 голосов
/ 02 марта 2020

Вы можете использовать " RedirectToPageResult () " на странице бритвы, чтобы вернуться на соответствующую страницу вместо просмотра.

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

Например, у меня есть страница с именем MyTest, пользователь может ввести параметр на этой странице.

Если пользователь вводит "a", тогда вернитесь к ThisPage.cs. html, в противном случае вернитесь к ThatPage.cs html.

MyTest.cs html:

@page
@model WebApplication1_rzaor_page.MyTestModel
@{
    ViewData["Title"] = "MyTest";
    Layout = "~/Pages/Shared/_Layout.cshtml";
}

<h1>MyTest</h1>
<form asp-page-handler="Login" method="post">
    <input id="Text1" type="text" name="_company" />
    <input id="Submit1" type="submit" value="submit" />
</form>

MyTest.cs html .cs:

 public class MyTestModel : PageModel
{
    public void OnGet()
    { 
    } 
    public IActionResult OnPostLogin(string _company)
    {
        return _company == "a" ? new RedirectToPageResult("ThisPage") : new RedirectToPageResult("ThatPage"); 
    }
}

Вот результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...