我的应用程序正在使用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; }
}
编辑:新界面 这里是我的接口:
public interface ICommodityRepository
{
IEnumerable<CommodityViewModel> GetCommodities();
}
:我对接口上的问题是,我可以使用的IEnumerable列表或选择列表?
编辑新的仓库:
public class CommodityRepository : ICommodityRepository
{
private readonly CommodityViewModel _context;
public CommodityRepository(CommodityViewModel context)
{
_context = context;
}
public IEnumerable<CommodityViewModel> GetCommodities()
{
return _context.CommoditiesList.ToList();
}
}
这里是我的控制器:
public class CommoditiesController : Controller
{
private readonly ICommodityRepository _commoditiyRepository;
public CommoditiesController(ICommodityRepository commodityRepository)
{
_commoditiyRepository = commodityRepository;
}
public IActionResult CommoditiesList()
{
return View(_commoditiyRepository.GetCommodities());
}
}
而我查看我使用的布局向下显示下降,因为我希望从每一个页面访问。 (我知道我应该把它放在一个局部视图我只是想获得它第一个工作日。):
<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>
这是我不能让过去的错误:
的NullReferenceException : 你调用的对象是空的。 MoveNext将在_Layout.cshtml,线134
<!-- Here: Line 134--><select asp-for="Code" asp-items="@(new SelectList(Model.CommoditiesList,"Code","Description"))">
<option>Please select one</option>
</select>
我真的不知道我要去哪里错了。我已经在存储库方法中实例化了一个新列表。我甚至在ViewModel中实例化了一个新的List。有些人可以指引我朝着正确的方向吗?谢谢。
请问您的布局有一个模型?看起来像代码使用'Model.Commodities' – Shyju