Asp.NetCore EntityFrameWorkCore 저장소 패턴Linq를 사용하여 드롭 다운을 채우시겠습니까?
내 프로젝트 그러나 드롭 다운은 여기에 몇 가지 네임 스페이스를 표시 빌드 :
모델 :
public partial class Commodity
{
public Commodity()
{
}
public IEnumerable<SelectListItem> CommodityCodes { get; set; };
[Key]
public Guid Oid { get; set; } = Guid.NewGuid();
public string Code { get; set; }
public string Description { get; set; }
}
내 코드입니다 + 저장소 :
public interface ICommodityRepository
{
IEnumerable<Commodity> ListAll();
IEnumerable<string> GetCommodityDropDown();
IEnumerable<SelectListItem> GetSelectListItems(IEnumerable<string> elements);
}
Repository:
public IEnumerable<string> GetCommodityDropDown()
{
Commodity model = new Commodity();
var commodities = from c in model.Oid.ToString()
select c;
return new List<string>
{
commodities.ToString()
};
}
public IEnumerable<SelectListItem> GetSelectListItems(IEnumerable<string> elements)
{
var selectList = new List<SelectListItem>();
foreach (var element in elements)
{
selectList.Add(new SelectListItem
{
Value = element,
Text = element
});
}
return selectList;
}
컨트롤러 :
public IActionResult Index()
{
var codes = _commodityRepository.GetCommodityDropDown();
var model = new Commodity();
model.CommodityCodes = _commodityRepository.GetSelectListItems(codes);
return View(model);
}
그리고 마지막으로 내보기 :
<div class="form-group">
@Html.DropDownListFor(m => m.Code, Model.CommodityCodes,
"- Please select a Commodity -",new { @class = "form-control" })
</div>
당신이 IMPL하려는 경우 selectList를 만든 다음 SelectList 생성자를 사용하십시오. 'new SelectList (context.Countries, "Oid", "Code")'https://msdn.microsoft.com/en-us/library/system.web.mvc .selectlist.selectlist (v = vs.118) .aspx – JamieD77
또는'IEnumerable Countries = context.Countries.Select (x => 새 SelectListItem {값 = x.Oid, 텍스트 = x.Code}), ' –
감사. 국가가 어떤 종류의 재산을 가져야하는지 말해 줄 수 있습니까? SelectListItem? 부연하다 ?? –