我想自定义形状类传递给视图,但我有一个小麻烦。
这是我得到的错误。
无法隐式转换类型“System.Linq.IQueryable”到“Project.Models.TaskTimeLine”。 一个显式转换存在(是否缺少强制转换?)
这是我第一次加入列表的一类,并试图通过一个在另一个内部,因为它是。
下面是类的定义
public class TaskTimeLine
{
public Task task { get; set; } // to hold a single object
public List<DateTime> scheduledDateTime { get; set; } // to hold a collection of date times..
}
控制器动作是沿此线。
[Authorize]
public ActionResult Details2(int id)
{
TaskTimeLine task = new TaskTimeLine(); //create new instance of TaskTimeLine
task = (IQueryable<TaskTimeLine>)taskRepository.GetTaskAndTimeLine(id);
if (task == null)
return View("NotFound");
else
return View("Details", task);
}
所有很正常到现在为止,所以我猜,也许事情错在这里。
public IQueryable<TaskTimeLine> GetTaskAndTimeLine(int taskId)
{
TaskTimeLine taskTimeLine = new TaskTimeLine(); // create new main object
taskTimeLine.scheduledDateTime = new List<DateTime>(); instanciate list object inside
taskTimeLine.task = db.Tasks.SingleOrDefault(d => d.id == taskId); read the record to fill the single task object
/// Lots of logic is performed here to add loads of date records to the list object.
/// If I add a break point and check the list I can see that all the date items have gone fine into the collection
return (IQueryable<TaskTimeLine>)taskTimeLine;
}
我在的地方有这么多奇怪的强制类型转换的唯一原因是因为它似乎是这些帮助程序编译。 目前,它不能编译,但我没去,但在运行实际的请求失败时,用相同的错误消息。
谁能帮助,也有可能增加对被卡住这种事情谁未来的人更有用的标题。