Как передать параметр в RazorPage OnGet ()? - PullRequest
0 голосов
/ 13 марта 2019

Использование бритвенных страниц Я пытаюсь создать сайт электронной торговли для продажи одежды и хочу использовать одну страницу в качестве шаблона для загрузки как мужских, так и женских страниц. Чтобы проверить это, можно сделать на моей _Layout.cshtml странице, которую я использую <a asp-page="/Shop" asp-route-id="Mens" class="nav-link">Mens</a>, а затем в:

Shop.cshtml.cs

    [BindProperties]
public class ShopModel : PageModel
{
    public string Status { get; set; }
    public void OnGet(string gender)
    {
        switch (gender)
        {
            case "Mens":
                //get men page
                Status = gender;
                break;
            case "Womens":
                //get womens page
                break;
        }
    }
}

Shop.cshtml

@page
@model ECommerce.Pages.Shop.ShopModel
@{
    ViewData["Title"] = "Shop";
}
<p>
    @Model.Status
</p>

Когда я отлаживаю, значение пол выглядит как ноль , поэтому статус никогда не устанавливается. Я поступаю об этом неправильно? Любая помощь очень ценится, спасибо!

1 Ответ

3 голосов
/ 13 марта 2019

Имя параметра gender, а не id, поэтому оно должно быть

<a asp-page="/Shop" asp-route-gender="Mens" class="nav-link">Mens</a>

Подробнее о значении маршрута помощника тега привязки .

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