如何使用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; }
}
您需要
将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)
瞧。