내 응용 프로그램이 Asp.Net 코어를 사용하고 있습니다. EF 코어. ViewModel, EF 모델 및 저장소 패턴을 사용하고 있습니다. 내보기 모델 내가 직접 만들었습니다. 그것은 EF 나 다른 것에 연결되어 있지 않습니다. 어쩌면 그것이 내가 잘못 가고있는 곳일까요?목록 또는 선택 목록이 계속 반환됩니다. 개체 참조 오류
편집 새로운 뷰 모델 :
public partial class CommodityViewModel
{
public CommodityViewModel()
{
}
public IEnumerable<SelectListItem> CommoditiesItems { get; set; }
public Guid Oid { get; set; }
public string Code { get; set; }
public string Description { get; set; }
}
편집 : 목록 또는 선택 목록에 대한 IEnumerable을 사용할 수 있습니다 내 인터페이스에
public interface ICommodityRepository
{
IEnumerable<CommodityViewModel> GetCommodities();
}
내 질문은 : 여기에 새 인터페이스 내 인터페이스입니다?
편집 새 저장소 :
public class CommoditiesController : Controller
{
private readonly ICommodityRepository _commoditiyRepository;
public CommoditiesController(ICommodityRepository commodityRepository)
{
_commoditiyRepository = commodityRepository;
}
public IActionResult CommoditiesList()
{
return View(_commoditiyRepository.GetCommodities());
}
}
그리고 나는 모든 페이지에서 액세스 할 원하기 때문에 드롭 다운을 표시 할 레이아웃을 사용하고 나의보기 :
public class CommodityRepository : ICommodityRepository
{
private readonly CommodityViewModel _context;
public CommodityRepository(CommodityViewModel context)
{
_context = context;
}
public IEnumerable<CommodityViewModel> GetCommodities()
{
return _context.CommoditiesList.ToList();
}
}
가 여기 내 컨트롤러입니다. (나는 부분보기에 넣어해야합니다 알고 난 그냥 먼저 작업을 진행하고자합니다..) :
는 NullReferenceException :
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-bell"></i> <b class="caret"></b></a>
<ul class="dropdown-menu alert-dropdown">
<li>
<select asp-for="Code" asp-items="@(new SelectList(Model.CommoditiesList,"Code","Description"))">
<option>Please select one</option>
</select>
</li>
</ul>
</li>
내가 과거를 얻을 수없는 오류입니다 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 내가 잘못거야 곳 (134)
<!-- Here: Line 134--><select asp-for="Code" asp-items="@(new SelectList(Model.CommoditiesList,"Code","Description"))">
<option>Please select one</option>
</select>
난 정말 모르는 _Layout.cshtml에서 MoveNext는, 라인. 저장소 메서드에서 새 목록을 인스턴스화했습니다. 심지어 ViewModel에서 새 List를 인스턴스화했습니다. 어떤 점이 올바른 방향으로 나를 가리킬 수 있습니까? 감사.
은 레이아웃이 모델을 가지고 있습니까? 코드에서 'Model.Commodities'를 사용하고있는 것 같습니다. – Shyju