Prawdopodobnie prosta, ale wydaje mi się, że czegoś brakuje.Lista rozwijana lepiej jako ViewBag lub część modelu C#/.NET MVC4
dwa modele:
public class Hardware
{
[Required]
public int Id { get; set; }
public int SerialNum { get; set; }
public int ProductNum { get; set; }
public string Notes { get; set; }
public DateTime PurchaseDate { get; set; }
public DateTime WarrantyExpiration { get; set; }
public virtual Manufacturer Manufacturer { get; set; }
}
public class Manufacturer
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<Hardware> Hardware { get; set; }
}
Kiedy idę do Hardware Tworzenie widoku, chcę, aby móc wybrać z listy rozwijanej Producentów, a gdy podnosi ona powinna ustanowić zależność między kawałku sprzęt i wybierz producenta.
Obecnie używam następujących zbudować selectList w kontrolerze
SelectList selectList = new SelectList(db.Manufacturers, "Id", "Name");
ViewBag.selectList = selectList;
A potem rzucając go w widoku:
@Html.DropDownListFor(model => model.Manufacturer, ViewBag.selectList as SelectList)\
Jednak wydaje się, że powinien być lepszy sposób to zrobić - być może tworzenie viewModel, który dziedziczy z Hardware z właściwością typ SelectList?
uwzględniając widok modelu dziedziczyć od podmiotu Entity Framework byłoby naprawdę zły pomysł. Powinieneś dążyć do całkowitego odizolowania swoich poglądów od swoich podmiotów. Na początku może to być więcej pracy, ale gdy już dostaniesz wzór, będziesz naprawdę zadowolony, że to zrobiłeś. – Dismissile