如何使用Automapper在MVC .net中使用html选择

本文关键字:html 选择 net 何使用 Automapper MVC | 更新日期: 2023-09-27 18:32:53

client class :

public partial class Client
        {
            public Client()
            {
                this.Produits = new List<Produit>();
            }
            public int idClient { get; set; }
            public string nom { get; set; }
            public string prenom { get; set; }
            public string Email { get; set; }
            public int Tel { get; set; }
            public virtual ICollection<Produit> Produits { get; set; }
        }

产品等级:

public partial class Produit
    {

        public int ProduitID { get; set; }
        public string Type { get; set; }
        public string Description { get; set; }
        public int Prix { get; set; }

        public Nullable<int> client_id { get; set; }
        public virtual Client client { get; set; }
    }

查看产品 :

// POST: /Produit/Create
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "ProduitID,Type,Description,Prix")] ProduitDTO produit)
        {
            if (ModelState.IsValid)
            {
                _ProduitService.Add(produit);
                return RedirectToAction("Index");
            }
            return View(produit);
        }

我想使用 html <select>在视图中显示client_id!
类之间的关系:一个客户端有多个产品我想显示产品ID,类型,描述,价格和client_id

public class ClientDTO
    {
        [Key]
        [ScaffoldColumn(false)]
        public int idClient { get; set; }
        [Required(ErrorMessage = "champ requis")]
        [MinLength(3, ErrorMessage = "valeur trop courte")]
        [DisplayName("Nom")]
        public string nom { get; set; }
        [Required(ErrorMessage = "champ requis")]
        [MinLength(3, ErrorMessage = "valeur trop courte")]
        [DisplayName("Prénom")]
        public string prenom { get; set; }
        [Required(ErrorMessage = "champ requis")]
        [MinLength(3, ErrorMessage = "valeur trop courte")]
        [DisplayName("Email")]
        public string Email { get; set; }
        public int Tel { get; set; }
    }                
public class ProduitDTO
    {
        [Key]
        [ScaffoldColumn(false)]
        public int ProduitID { get; set; }
        [Required(ErrorMessage = "champ requis")]
        [MinLength(3, ErrorMessage = "valeur trop courte")]
        [DisplayName("Type")]
        public string Type { get; set; }
        [Required(ErrorMessage = "champ requis")]
        [MinLength(3, ErrorMessage = "valeur trop courte")]
        [DisplayName("Description")]
        public string Description { get; set; }
        [Required(ErrorMessage = "champ requis")]
        [MinLength(3, ErrorMessage = "valeur trop courte")]
        [DisplayName("Prix")]
        public int Prix { get; set; }

        public Nullable<int> client_id { get; set; }
        public virtual ClientDTO client { get; set; }
    }

如何使用Automapper在MVC .net中使用html选择

您需要

ICollection<Produit> Produits转换为IEnumerable<SelectListItem>。执行此操作的一个好方法是使用简单的 lambda:

IEnumerable<SelectListItem> dropdownItems = db.Client.Find(myClientId).Produits.Select(i => new SelectListItem{ Value = i.ProduitId.ToString(), Text = Produit.Description });

以某种方式将其附加到您的模型:

Model.DropDownItems = dropdownItems;

然后,您可以使用 Razor 生成下拉列表

@Html.DropDownListFor(Model.DropDownItems)

瞧。