C# 传递数据以编辑错误MVC 4

C# 传递数据以编辑错误MVC 4,c#,asp.net-mvc,C#,Asp.net Mvc,我试图将数据从控制器传递到视图进行编辑,但收到以下错误: 传递到字典中的模型项的类型为 'System.Data.Entity.Infrastructure.DbQuery'1[TIS.Models.ORDER\u WORK\u DETAIL], 但此词典需要类型为的模型项 “这是模型。订单工作细节” 在《控制器》中,我写道: public ActionResult MKP_003(string id) { using (Models.AllDataEn

我试图将数据从控制器传递到视图进行编辑,但收到以下错误:

传递到字典中的模型项的类型为 'System.Data.Entity.Infrastructure.DbQuery'1[TIS.Models.ORDER\u WORK\u DETAIL], 但此词典需要类型为的模型项 “这是模型。订单工作细节”

在《控制器》中,我写道:

 public ActionResult MKP_003(string id)
        {
            using (Models.AllDataEntities et = new Models.AllDataEntities())
            {
                var OData = (from e in et.ORDER_WORK_DETAIL where (e.ORDER_NO == id) select e);
                return View(OData);
            }
        }
然后我补充说:

@model TIS.Models.ORDER_WORK_DETAIL
我试着这样改变看法

 @model IEnumerable<TIS.Models.ORDER_WORK_DETAIL> 
但它不起作用。 我会错过任何代码吗?
非常感谢你

如果您的模型是
@model TIS.Models.ORDER\u WORK\u DETAIL
,则需要返回单个对象,而不是集合。在查询中使用
FirstOrDefault()
,但它不起作用。。。。什么不起作用?例外结果不对?谢谢Stephen Muecke。我加上它works@Florian:它抛出一个异常,正如我在问题顶部提到的,您可以像这样简化查询:var OData=et.ORDER\u WORK\u DETAIL.FirstOrDefault(e=>e.ORDER\u NO==id);
var OData = (from e in et.ORDER_WORK_DETAIL where (e.ORDER_NO == id) select e).ToList();