如何在 razor 页面中访问列表 属性
How to access list property in view of razor page
在视图页面 (cshtml) 中,我想访问实体,例如产品详细信息、价格或我的情况。首先,对于产品模型,它包括以下属性:
public int ProductId { get; set; }
public int? CatId { get; set; }
public string ProductSdesc { get; set; }
public string ProductLdesc { get; set; }
public string ProductImage { get; set; }
public decimal? Price { get; set; }
public bool? Instock { get; set; }
public int Inventory { get; set; }
public ProductCategories Cat { get; set; }
所以我想在视图页面 (cshtml) 中访问这些属性之一
以下是我试图在 C# razor 页面中获取 属性 的代码。
public class ElectronicDetailsModel : PageModel
{
private readonly XYZshopping.Models.XYZEVEDBContext _context;
private readonly IHttpContextAccessor _httpContextAccessor;
[BindProperty]
public IList<Products> Products { get; set; }
public ElectronicDetailsModel(XYZshopping.Models.XYZEVEDBContext context, IHttpContextAccessor httpContextAccessor)
{
_context = context;
_httpContextAccessor = httpContextAccessor;
}
public IActionResult OnGet()
{
//var userName = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Name).Value;
Products = _context.Products.Where(p => p.CatId == 10).ToList();
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
Products = _context.Products.Where(p => p.CatId == 10).ToList();
await _context.SaveChangesAsync();
return RedirectToPage("./TransferSToC");
}
}
在查看页面中获取 Price 或 ProductSdesc.. 应该是什么样子?
<div class="row">
<div class="col-md-4">
<form>
@Model.Products.... < this part I am trying to implement...> How can I access the property in the C# (controller page) ??
</form>
</div>
--编辑--
要了解我正在尝试做什么,
在浏览器上,我希望它们看起来像这样:
Casio HandHeld Color1 TV 2.7 --> ProductSDec
.0000 --> Price
<form method="post">
@foreach (var product in Model.Products)
{
<tr>
<td>@product.Price</td>
<td>@product.etc...</td>
</tr>
}
</form>
或
<form method="post">
@for (int i = 0; i < Model.Products.Count; i++)
{
<tr>
<td>@Html.DisplayFor(p => p.Products[i].Price)</td>
</tr>
}
</form>
在视图页面 (cshtml) 中,我想访问实体,例如产品详细信息、价格或我的情况。首先,对于产品模型,它包括以下属性:
public int ProductId { get; set; }
public int? CatId { get; set; }
public string ProductSdesc { get; set; }
public string ProductLdesc { get; set; }
public string ProductImage { get; set; }
public decimal? Price { get; set; }
public bool? Instock { get; set; }
public int Inventory { get; set; }
public ProductCategories Cat { get; set; }
所以我想在视图页面 (cshtml) 中访问这些属性之一
以下是我试图在 C# razor 页面中获取 属性 的代码。
public class ElectronicDetailsModel : PageModel
{
private readonly XYZshopping.Models.XYZEVEDBContext _context;
private readonly IHttpContextAccessor _httpContextAccessor;
[BindProperty]
public IList<Products> Products { get; set; }
public ElectronicDetailsModel(XYZshopping.Models.XYZEVEDBContext context, IHttpContextAccessor httpContextAccessor)
{
_context = context;
_httpContextAccessor = httpContextAccessor;
}
public IActionResult OnGet()
{
//var userName = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Name).Value;
Products = _context.Products.Where(p => p.CatId == 10).ToList();
return Page();
}
public async Task<IActionResult> OnPostAsync()
{
Products = _context.Products.Where(p => p.CatId == 10).ToList();
await _context.SaveChangesAsync();
return RedirectToPage("./TransferSToC");
}
}
在查看页面中获取 Price 或 ProductSdesc.. 应该是什么样子?
<div class="row">
<div class="col-md-4">
<form>
@Model.Products.... < this part I am trying to implement...> How can I access the property in the C# (controller page) ??
</form>
</div>
--编辑--
要了解我正在尝试做什么,
在浏览器上,我希望它们看起来像这样:
Casio HandHeld Color1 TV 2.7 --> ProductSDec
.0000 --> Price
<form method="post">
@foreach (var product in Model.Products)
{
<tr>
<td>@product.Price</td>
<td>@product.etc...</td>
</tr>
}
</form>
或
<form method="post">
@for (int i = 0; i < Model.Products.Count; i++)
{
<tr>
<td>@Html.DisplayFor(p => p.Products[i].Price)</td>
</tr>
}
</form>