如何将参数传递给 RazorPage OnGet()?
How do I pass a parameter to RazorPage OnGet()?
使用 razor 页面 我正在尝试建立一个销售服装的电子商务网站,我想使用一个页面作为模板来加载男装和女装页面。要测试这可以在我的 _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>
当我调试 gender 的值时显示为 null,因此永远不会设置状态。我会以错误的方式解决这个问题吗?非常感谢任何帮助,谢谢!
参数名是gender
,不是id
,所以应该是
<a asp-page="/Shop" asp-route-gender="Mens" class="nav-link">Mens</a>
如果您要使用除 OnGet 之外的其他方法,例如 OngetView,您必须将
版本
使用 razor 页面 我正在尝试建立一个销售服装的电子商务网站,我想使用一个页面作为模板来加载男装和女装页面。要测试这可以在我的 _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>
当我调试 gender 的值时显示为 null,因此永远不会设置状态。我会以错误的方式解决这个问题吗?非常感谢任何帮助,谢谢!
参数名是gender
,不是id
,所以应该是
<a asp-page="/Shop" asp-route-gender="Mens" class="nav-link">Mens</a>
如果您要使用除 OnGet 之外的其他方法,例如 OngetView,您必须将 版本