如何将参数传递给 RazorPage OnGet()?

ste*_*eve 1 c# asp.net-core-mvc asp.net-core-tag-helpers razor-pages

使用剃刀页面我正在尝试建立一个用于销售服装的电子商务网站,我想使用一次页面作为模板来加载男士和女士页面。为了测试这可以在我使用的_Layout.cshtml页面中完成<a asp-page="/Shop" asp-route-id="Mens" class="nav-link">Mens</a>,然后在:

商店.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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

商店.cshtml

@page
@model ECommerce.Pages.Shop.ShopModel
@{
    ViewData["Title"] = "Shop";
}
<p>
    @Model.Status
</p>
Run Code Online (Sandbox Code Playgroud)

当我调试时,性别的值显示为null,因此永远不会设置状态。我会以错误的方式解决这个问题吗?非常感谢任何帮助,谢谢!

Luk*_* Vo 8

参数名称是gender,不是id,所以应该是

<a asp-page="/Shop" asp-route-gender="Mens" class="nav-link">Mens</a>
Run Code Online (Sandbox Code Playgroud)

查看更多关于锚标签助手的路由值