【问题标题】:How to access list property in view of razor page如何查看剃须刀页面访问列表属性
【发布时间】:2019-05-16 01:39:09
【问题描述】:

在查看页面 (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 $45.0000 --> Price

【问题讨论】:

  • 您的ElectronicDetailsModel 被命名为“模型”,但看起来您像控制器一样使用它。那些IActionResult 方法在模型类中没有意义。你的控制器代码在哪里?

标签: c# entity-framework model-view-controller razor-pages


【解决方案1】:
<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>

【讨论】:

  • 在这种情况下我应该只使用foreach还是for?
  • 看你是否要使用@Html helper
猜你喜欢
  • 1970-01-01
  • 2019-07-24
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 2022-01-16
  • 2021-10-22
相关资源
最近更新 更多