【发布时间】:2015-07-17 16:52:17
【问题描述】:
我正在尝试通过存储过程从我的数据库中获取一些信息,然后将其从我的控制器传输到我的视图:
[HttpPost]
public ActionResult MostrarRecord(String Fecha)
{
ViewBag.Message = "Siga los pasos para completar el proceso...";
retail2Entities cl = new retail2Entities();
DateTime fechaBase = Convert.ToDateTime(Fecha);
GetIndividualSensorRecord_Result Records = cl.GetIndividualSensorRecord(ViewBag.IDSENSOR, ViewBag.TIPOSENSOR, fechaBase);
return View(Records);
}
但在运行时,我得到下一个错误
无法将 type'System.Data.Objects.ObjectResult' 隐式转换为 'DataRebuilder.Models.GetIndividualSensorRecord_Result'。
我怎样才能正确地做到这一点?
如果我放置:
var Records = cl.GetIndividualSensorRecord(ViewBag.IDSENSOR, ViewBag.TIPOSENSOR, fechaBase);
这是我的模型:
namespace DataRebuilder.Models
{
using System;
public partial class GetIndividualSensorRecord_Result
{
public System.DateTime date { get; set; }
public decimal idSensor { get; set; }
public bool enter { get; set; }
public Nullable<decimal> C01 { get; set; }
public Nullable<decimal> C02 { get; set; }
public Nullable<decimal> C03 { get; set; }
public Nullable<decimal> C04 { get; set; }
public Nullable<decimal> C05 { get; set; }
public Nullable<decimal> C06 { get; set; }
public Nullable<decimal> C07 { get; set; }
public Nullable<decimal> C08 { get; set; }
public Nullable<decimal> C09 { get; set; }
public Nullable<decimal> C10 { get; set; }
public Nullable<decimal> C11 { get; set; }
public Nullable<decimal> C12 { get; set; }
public Nullable<decimal> C13 { get; set; }
public Nullable<decimal> C14 { get; set; }
public Nullable<decimal> C15 { get; set; }
public Nullable<decimal> C16 { get; set; }
public Nullable<decimal> C17 { get; set; }
public Nullable<decimal> C18 { get; set; }
public Nullable<decimal> C19 { get; set; }
public Nullable<decimal> C20 { get; set; }
public Nullable<decimal> C21 { get; set; }
public Nullable<decimal> C22 { get; set; }
public Nullable<decimal> C23 { get; set; }
public Nullable<decimal> C00 { get; set; }
}}
这是在我的 context.cs 中
public virtual ObjectResult<GetIndividualSensorRecord_Result> GetIndividualSensorRecord(Nullable<int> idsensor, Nullable<int> entrada, Nullable<System.DateTime> fech)
{
var idsensorParameter = idsensor.HasValue ?
new ObjectParameter("idsensor", idsensor) :
new ObjectParameter("idsensor", typeof(int));
var entradaParameter = entrada.HasValue ?
new ObjectParameter("entrada", entrada) :
new ObjectParameter("entrada", typeof(int));
var fechParameter = fech.HasValue ?
new ObjectParameter("fech", fech) :
new ObjectParameter("fech", typeof(System.DateTime));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetIndividualSensorRecord_Result>("GetIndividualSensorRecord", idsensorParameter, entradaParameter, fechParameter);
}
我可以传输它,但我如何能够在视图中探索变量 Records? IE。我的模型有 10 个不同的字符串对应。
感谢您的帮助。
【问题讨论】:
-
你试过做GetIndividualSensorRecord_Result Records = cl.GetIndividualSensorRecord(ViewBag.IDSENSOR, ViewBag.TIPOSENSOR, fechaBase).ToList(); ?
-
是的,但是存储过程只提供了1行不同列的数据,它不包含ToList()的定义
-
我认为问题在于 GetIndividualSensorRecord() 返回一个 ObjectResult,但您试图将其设置为复杂类型 GetIndividualSensorRecord_Result。尝试做一个 .FirstOrDefault()
-
非常感谢!它与 FirstOrDefault() 一起使用...主要问题是我在调用存储过程时滥用了 ViewBag!
-
好!我会将该评论作为未来搜索者的答案
标签: c# asp.net-mvc-4 model controller type-conversion