gpt4 book ai didi

c# - 创建 View - 使用产品订购

转载 作者:太空狗 更新时间:2023-10-30 01:16:07 25 4
gpt4 key购买 nike

我不确定该怎么做,我有一个包含用户订单详细信息、地址等的 Orders 类,一个包含产品 ID 的 OrderDetails 类和一个包含所有产品信息、成本、颜色的 Product 类等等,我将如何看待将所有这些都放在一个 View 中。就像 Order 1 会有 OrderDetails 1 并且这将保存此订单中的产品。

例如我想显示订单详情,例如地址,然后在其下方按此顺序列出产品。我该怎么做?还需要与登录用户相关

这是我的类(class)

顺序

[Bind(Exclude = "OrderId")]
public partial class Order
{
[ScaffoldColumn(false)]
public int OrderId { get; set; }

[ScaffoldColumn(false)]
public System.DateTime OrderDate { get; set; }

[ScaffoldColumn(false)]
[Remote("CheckUserName", "Account")]
public string Username { get; set; }

[Required]
[StringLength(16, ErrorMessage = "Your name is too long")]
[Display(Name = "First Name")]
public string FirstName { get; set; }

[Required(ErrorMessage = "Your last name is required.")]
[StringLength(16, ErrorMessage = "Last name is too long.")]
[Display(Name = "Last Name")]
public string LastName { get; set; }

[Required(ErrorMessage = "Address is required.")]
public string Address { get; set; }

[Required(ErrorMessage = "City is required.")]
public string City { get; set; }

[Required(ErrorMessage = "Postcode is required.")]
[Display(Name = "Post Code")]
public string PostalCode { get; set; }

[Required(ErrorMessage = "Country is required.")]
public string Country { get; set; }

[Required(ErrorMessage = "Phone number is required.")]
public string Phone { get; set; }

[RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", ErrorMessage = "Email doesn't look like a valid email address.")]
public string Email { get; set; }

[System.ComponentModel.DataAnnotations.Compare("Email")]
[Display(Name = "Confirm your email address")]
public string EmailConfirm { get; set; }


[ScaffoldColumn(false)]
public string PaymentTransactionId { get; set; }


[ScaffoldColumn(false)]
public bool HasBeenShipped { get; set; }

[ScaffoldColumn(false)]
[ReadOnly(true)]
public decimal Total { get; set; }

public CardDetails cardDetails { get; set; }
//public List<CardDetails> cardDetails { get; set; }
public List<OrderDetail> OrderDetails { get; set; }

订单详情类

public class OrderDetail
{
public int OrderDetailId { get; set; }
public int OrderId { get; set; }
public int ProductId { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public virtual Product Product { get; set; }
public virtual Order Order { get; set; }
}

产品类

public class Product
{
[Key]
public virtual int ProductId { get; set; }
public virtual int CategoryId { get; set; }
public virtual string Title { get; set; }
public virtual string Description { get; set; }
public virtual string Colour { get; set; }
public virtual string ProductImg { get; set; }
public virtual decimal Price { get; set; }
public virtual int Quantity { get; set; }

public Category Category { get; set; }
}

所以订单类将与用户相关,这将显示地址等,然后我想要与它下面的订单相关的产品

View 模型

//From ORDER Table
public int OrderId { get; set; }
public System.DateTime OrderDate { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
public string Email { get; set; }
public decimal Total { get; set; }


//from Products
public List<Product> Products { get; set; }

最佳答案

使用 ViewModel - 一个介于 View 和模型之间的类。

需要查看模型外部生成的特定数据是很常见的——组合框项目等,对于这种情况,您应该使用 View 模型。此数据在语义上错位在模型本身上,因此您使用一个中间对象来服务于 View 并将其映射到模型类或从模型类映射 - 您可以使用 AutoMapper 等映射器使此过程变得轻而易举。

参见 MVVM:

https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel

关于c# - 创建 View - 使用产品订购,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com