【问题标题】:How do I pass a parameter to RazorPage OnGet()?如何将参数传递给 RazorPage OnGet()?
【发布时间】:2019-08-03 13:30:41
【问题描述】:

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

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>

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

【问题讨论】:

    标签: c# asp.net-core-mvc razor-pages asp.net-core-tag-helpers


    【解决方案1】:

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

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

    查看更多关于anchor tag helper's route value的信息。

    【讨论】:

      【解决方案2】:

      如果您要使用 OnGet 以外的其他方法,例如 OngetView,您必须输入 版本

      【讨论】:

        猜你喜欢
        • 2021-10-31
        • 2020-10-09
        • 2012-12-21
        • 2012-01-07
        • 2014-05-03
        • 2015-06-26
        • 2012-01-18
        • 2017-07-14
        • 2018-03-08
        相关资源
        最近更新 更多