C# c-@foreach(模型中的变量项)
这与NullReferenceException问题不同,因为我们处理的是一个被关注点分隔开的项目,这在某些方面使它有所不同——因为前面的答案涉及一个项目,我们处理的是3个不同的项目和名称空间 我一直在想:C# c-@foreach(模型中的变量项),c#,database,model-view-controller,model,C#,Database,Model View Controller,Model,这与NullReferenceException问题不同,因为我们处理的是一个被关注点分隔开的项目,这在某些方面使它有所不同——因为前面的答案涉及一个项目,我们处理的是3个不同的项目和名称空间 我一直在想: Line 41: <th></th> Line 42: </tr> Line 43: @foreach (var item in Model) Line 44: { Line 45: <tr&g
Line 41: <th></th>
Line 42: </tr>
Line 43: @foreach (var item in Model)
Line 44: {
Line 45: <tr>
通路
最后是index.schtml,我在这里遇到了问题
所有内容都会编译,并且没有错误
您的视图需要DVD类型型号的集合
@model IEnumerable<DVDStore.Data.Models.DVD>
您应该传递DVD对象列表
更新:
最快的方法是从方法返回DVD对象列表
public IEnumerable<DVDStore.Data.Models.DVD> FindAllDVD(string DVDTitles, string searchString)
并返回DVD列表
然后在控制器中,您可以执行以下操作:
FindAllDVDs findDVDs = new FindAllDVDs();
IEnumerable<Dvd> dvds = findDVDs.FindAllDVD(<DVDTitles>, <searchString>);
return View(dvds);
然而,我不建议采取这种做法。您不想将数据模型用作视图模型。我宁愿创建一个单独的DVD类作为视图的模型,然后将数据模型映射到此视图模型。您需要更改FindAllDVD方法,使其具有:
return dvds;
作为它的最后一行。这可能意味着将签名更改为:
public IEnumerable<DVD> FindAllDVD(string DVDTitles, string searchString)
这样,您的模型将使用DVD集,而不是像现在这样使用FindAllDVD类的单个实例。在FindAllDVD中,您有列表DVD=新列表;这是在构造函数内部设置的
您可以调用构造函数,就像您刚刚记得取消对dvds属性的注释一样,如下所示:
public List<FindAllDVDs> dVDs = new List<FindAllDVDs>();
dVDs = dvds;
dVDs = dvds.toList();
FindAllDVDs findDVDs = new FindAllDVDs("","");
return View(findDVDs.dvds);
也许你需要做一些演员,比如:
public List<FindAllDVDs> dVDs = new List<FindAllDVDs>();
dVDs = dvds;
dVDs = dvds.toList();
FindAllDVDs findDVDs = new FindAllDVDs("","");
return View(findDVDs.dvds);
,并传递FindAllDVDs中的值,如下所示:
public List<FindAllDVDs> dVDs = new List<FindAllDVDs>();
dVDs = dvds;
dVDs = dvds.toList();
FindAllDVDs findDVDs = new FindAllDVDs("","");
return View(findDVDs.dvds);
如何传递?最快的方法是从方法返回DVD对象列表。public IEnumerable FindAllDVDstring DVD标题、字符串搜索字符串并返回列表DVD。然后在控制器中,可以执行以下操作:FindAllDVDs findDVDs=newfindalldvds;IEnumerable DVD=findDVDs.FindAllDVD;返回查看DVD;然而,我不建议采取这种做法。我宁愿创建一个单独的DVD类作为视图的模型,然后将数据模型映射到此视图模型。对不起,我的注释有点混乱,仍然难以处理此注释格式。我用我描述的内容更新了我的答案。它似乎无法识别DVD-你是说取消对DVD的注释正确吗?我现在做了更详细的描述,我的意思是取消对FindAllDVDs顶部的属性的注释,并使用它来获取控制器的值。当然,它是重复的-如果多个名称空间项目没有区别。模型中@foreach var项中的模型为空。而公共ActionResult索引方法中的代码毫无意义。您所做的只是初始化类的一个实例。您甚至没有调用FindAllDVD方法,该方法不会以任何方式返回任何内容。Alex,导致此异常的唯一原因是:您尝试使用的值为null。因此,每个NullReferenceException问题都是重复的。你的副本问题解释了所有可能为空的方式以及如何修复它。