私はドロップダウンリストを返すことができるはずのコントローラのアクションに取り組んでいます。そのための引数は、親エンティティタイプ、親エンティティID、子エンティティタイプです。ドロップダウンリストを返す汎用メソッドasp.netの部分ビュー
public ActionResult Dropdown<TParent,TChild>(int id) where TParent : class where TChild:class
{
var dropdownList = new DropdownList<TParent,TChild>(id);
return PartialView();
}
DropdownListクラスは次のようになります。
public class DropdownList<TParentEntity, TChildEntity> where TParentEntity : EntityObject where TChildEntity : EntityObject
{
public List<SelectListItem> ListItems;
public DropdownList(int parentId)
{
DatabaseEntities db = new DatabaseEntities();
TParentEntity parentEntity = db.Set<TParentEntity>().Find(parentId);
DbEntityEntry parentEntityEntry = db.Entry(parentEntity);
ListItems.Add(new SelectListItem { Value = "-1", Selected = false, Text = "Select " + typeof(TChildEntity).Name });
//foreach (dynamic entity in childrenEntities)
//{
// ListItems.Add(new SelectListItem
// {
// Value = Convert.ToString(entity.Id),
// Text = entity.Name,
// Selected = false
// });
//}
}
}
私は進歩する方法がなく、私は立ち往生しています。私もGoogle上の任意のソリューションを見つけることができません。基本的には、親エンティティのID、親エンティティのタイプ、子エンティティのタイプを渡すクラスを作成します。子エンティティのドロップダウンリストを返すようにします。
ParentIdで子データをすぐに選択できるため、Parentの型を知る必要はありません。それはもっと簡単になります。 –
@GertArnoldありがとうございます。しかし、1つの親が複数の子ナビゲーションプロパティを持つことができるため、その親子を指定する必要があります。 –