ビューを実行しようとすると、NullReferenceException
が表示されます。 この問題の原因となるコードは表示されません。 誰かが問題を説明できますか? NullRef例外とNullReferenceExceptionコントローラ内のC#
public class Catalogus: ICatalogus
{
private readonly DbSet<Materiaal> materialen;
private IEnumerable<Materiaal> materialenTest;
private Firma firma;
public Catalogus()
{
firma = new Firma("hh", "[email protected]");
materialenTest = new Materiaal[] { new Materiaal(5, 0, "1", "test", "test", "ts", firma, "wereldbol", "wereldbol", "lol", 0, true) };
}
public IEnumerable<Materiaal> VindAlleMaterialen()
{
return materialenTest.OrderBy(m => m.Naam);
}
public IEnumerable<Materiaal> ZoekOpTrefwoord(string trefwoord)
{
IEnumerable<Materiaal> gefilterdMaterialen = materialenTest.Where(mat => mat.GetType().GetProperty("naam").GetValue(this).Equals(trefwoord));
return gefilterdMaterialen;
}
}
コントローラ:
この行が問題の原因と感謝
これはモデルクラスです。
IEnumerable materialen = catalogus.VindAlleMaterialen()。OrderBy(m => m.Naam).ToList();
public class CatalogusController : Controller
{
private ICatalogus catalogus;
public CatalogusController() { }
public CatalogusController(ICatalogus catalogus)
{
this.catalogus = catalogus;
}
public ActionResult Index()
{
IEnumerable<Materiaal> materialen = catalogus.VindAlleMaterialen().OrderBy(m => m.Naam).ToList();
return View(materialen);
}
}
を、それがcatalogusを注入していないデフォルトのコンストラクタを呼び出し、または要素の一つがnullまたはnull 'Naam'を持っているいずれかのように見えます。 –
コンストラクタにインタフェースパラメータを持つコントローラを持っていると、何らかのDIフレームワーク、おそらくNinjectを使用している可能性があります。このシナリオでは、セットアップに何か問題があります。デフォルトのコンストラクタを削除し、それが機能するかどうかを確認し、そうでない場合は、DIフレームワークのドキュメントを参照して、正しく構成されていることを確認してください。 –
この行はどこですか* IEnumerable materialen = catalogus.VindAlleMaterialen()。OrderBy(m => m.Naam).ToList(); *上に掲載されたコードには??? –