私のアプリに戻って保持します。 EFコア。私はViewModel、EFモデルではなく、リポジトリパターンを使用しています。私のビューモデル私は自分自身を作成しました。それはEFなどに配線されていません。多分私は間違っているのでしょうか?リストまたは選択リストはAsp.Netコアを使用しているオブジェクト参照エラー
編集新しいのViewModel:
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; }
}
EDIT:新しいインターフェイス ここでは私のインターフェイスである:私のインターフェイス上
public interface ICommodityRepository
{
IEnumerable<CommodityViewModel> GetCommodities();
}
私の質問は、私はリストまたは選択リストのためにIEnumerableを使用することができますか?
編集新しいリポジトリ:
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>
は、私は過去を得ることができないエラーがあります: オブジェクト参照がオブジェクト インスタンスに設定されていません。 _Layout.cshtmlで MoveNextメソッド、ライン134
<!-- Here: Line 134--><select asp-for="Code" asp-items="@(new SelectList(Model.CommoditiesList,"Code","Description"))">
<option>Please select one</option>
</select>
は、私は本当に私が間違っているつもりだどこか分かりません。私はリポジトリメソッドで新しいリストをインスタンス化しました。私はViewModelで新しいListをインスタンス化しました。いくつか私は正しい方向に私を指すことができますか?ありがとう。
は、あなたのレイアウトのモデルを持っていますか?エラー:コードのように見えるが、私は新しいSelectListItem {[選択= model.code}をインスタンス化するとき、私はエラーを取得しています 'Model.Commodities' – Shyju