猿问

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

使用剃须刀页面我正在尝试建立一个销售服装的电子商务网站,我想使用一次页面作为模板来加载男士和女士页面。要对此进行测试,可以在我使用的_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;

        }

    }

}

商店.cshtml

@page

@model ECommerce.Pages.Shop.ShopModel

@{

    ViewData["Title"] = "Shop";

}

<p>

    @Model.Status

</p>

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


炎炎设计
浏览 123回答 2
2回答

波斯汪

参数名称是gender,不是id,所以应该是<a&nbsp;asp-page="/Shop"&nbsp;asp-route-gender="Mens"&nbsp;class="nav-link">Mens</a>查看更多关于锚标记助手的路由值。

拉丁的传说

如果您要使用 OnGet 以外的其他方法,例如 OngetView,则必须输入 Ver
随时随地看视频慕课网APP
我要回答