我在我的项目中遇到了一个问题,并想知道是否有人可以指出我可能出错的地方。所以基本上在我的项目中我有一个像这样的ActionResult方法:
public ActionResult PartNumberManufacturer(string id)
{
var partNumber = _Context.PartNumberTable.FirstOrDefault(x => x.partNumberId == id);
return PartialView("PartNumberView", partNumber);
}
然后这是我的观点
@if (Model != null && !string.IsNullOrEmpty(Model.PartNumberManufacturer))
{
@if (Model.PartNumberManufacturer == "Fr")
{
<div>
<p> This product is developed in france </p>
@if (@Model.PartNumberManufacturer == "Ger")
{
<p> This Product is developed in Germany </p>
}
以上代码工作正常。但问题是,如果你回顾我的ActionResult控制器方法,我正在使用:
var partNumber = Context.PartNumberTable.FirstOrDefault(x => x.partNumberId == id);
FirstOrDefault-course只返回数据库中第一个找到的零件号。 这不是我正在寻找的我不希望它只返回第一个找到的记录,我希望它返回匹配数据库中的搜索查询的所有记录。所以为了做到这一点并在网上进行了一些研究之后,我发现我必须将结果返回到列表中,这使我修改了我的ActionResult方法,如下所示:
public ActionResult PartNumberManufacturer(string id)
{
var _methodOfRepair = Context.PartNumberTable.Where(x => x.PartNumberId == id); // changed thisline
return PartialView("PartNumberView", partNumber);
}
所以是的,我收到的错误信息是:
{“'System.Data.Entity.Infrastructure.DbQuery'不包含 'PartNumberManufacturer'“}的定义
我做了那些改变。我在这做错了什么?或者为了达到这个目的,我可以推荐一种不同的方法吗?
谢谢你的时间。答案 0 :(得分:0)
首先推荐,请阅读implementing the repository pattern。
其次,如果您要向View
发送一组对象,那么您的View需要预期该数据类型。更改View预期的Model
数据类型。
在View中,您应该遍历每个元素并进行渲染。