Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC2应用程序在视图中显示错误_C#_Asp.net_Sql_Vb.net_Linq - Fatal编程技术网

C# ASP.NET MVC2应用程序在视图中显示错误

C# ASP.NET MVC2应用程序在视图中显示错误,c#,asp.net,sql,vb.net,linq,C#,Asp.net,Sql,Vb.net,Linq,控制器- namespace TaskList.Controllers { public class HomeController : Controller { // // GET: /Home/ private TaskListDataContext DB = new TaskListDataContext(); //Task tasks = new Task(); //Display a list of Tasks pu

控制器-

namespace TaskList.Controllers
{
  public class HomeController : Controller
  {
     //
     // GET: /Home/
     private TaskListDataContext  DB = new TaskListDataContext();

     //Task tasks = new Task();
     //Display a list of Tasks
     public ActionResult Index()
     {
        var tasks = from t in DB.Tasks
                    orderby t.EntryDate descending
                    select new TaskList.Models.Task()
                    {
                       Id = t.Id,
                       Task1 = t.Task1,
                       IsCompleted = t.IsCompleted,
                       EntryDate = t.EntryDate
                    };
        return View(tasks);
      }

      //Display a form for creating a new Task
      public ActionResult Create()
      {
         return View();
      }

      //Adding a new task to the database
      public ActionResult CreateNew(string tasktext)
      {
         //Add the new task to the database 
         Task newTask = new Task();
         newTask.Task1 = tasktext;
         newTask.IsCompleted = false;
         newTask.EntryDate = DateTime.Now;       
         DB.Tasks.InsertOnSubmit(newTask);
         DB.SubmitChanges();       
         return RedirectToAction("Index");
      }

      //Mark a task as complete
      public ActionResult Complete()
      {
         //Database Logic
         return RedirectToAction("Index");
      }
   }
}
视图:

当我试图运行应用程序时,它显示了一个错误

在查询中显式构造实体类型“TaskList.Models.Task” 这是不允许的

在视图的foreach循环中

实际上,我正试图在这里创建一个用VB构建的应用程序的C验证


您可能需要转换为如下列表:

var tasks = (from t in DB.Tasks orderby t.EntryDate descending select new TaskList.Models.Task() { Id = t.Id, Task1 = t.Task1, IsCompleted = t.IsCompleted, EntryDate = t.EntryDate }).ToList();

正如错误消息所示,您不能在查询语句中创建映射实体。您可以选择现有实体:

var tasks = from t in DB.Tasks
            orderby t.EntryDate descending
            select t;
,或创建查询外部的新实体列表:

var taskEntities = from t in DB.Tasks
                    orderby t.EntryDate descending
                    select t;
var tasks = new List<TaskList.Models.Task>();
foreach(var taskEntity in taskEntities)
{
    tasks.Add(new TaskList.Models.Task()
                {
                   Id = taskEntity.Id,
                   Task1 = taskEntity.Task1,
                   IsCompleted = taskEntity.IsCompleted,
                   EntryDate = taskEntity.EntryDate
                });
}
return View(tasks);

,,根据您的要求。

我想这可能会对您有所帮助,非常感谢,但是使用har07的解决方案纠正了错误。您能帮我一下吗?该视图仍然没有按照我在视图中添加的foreach循环显示Taskname字符串。我尝试以这种方式添加,但显示编译时错误,显示名称“t”在当前上下文中不存在。我将这段代码添加到我的控制器方法索引中。可能是因为t是Linq语句的一部分。还有其他想法吗?我错了,没有编辑那个部分。现在已经更新了,你可以用最新的代码再试一次。非常感谢。例外情况消失了从早上开始我就一直在敲这个,因为我是新来的。但是,在这个视图中,我仍然面临一个问题,视图仍然没有按照我在视图中添加的foreach循环显示Taskname字符串。你能帮忙吗?哦好的。。。我会在以后的某个时候把它作为一个新问题补充。希望你和我有机会再次接受答案。我尝试使用此语句,它显示的异常与代码中显示的异常相同。请提供其他建议?
var tasks = from t in DB.Tasks
            orderby t.EntryDate descending
            select t;
var taskEntities = from t in DB.Tasks
                    orderby t.EntryDate descending
                    select t;
var tasks = new List<TaskList.Models.Task>();
foreach(var taskEntity in taskEntities)
{
    tasks.Add(new TaskList.Models.Task()
                {
                   Id = taskEntity.Id,
                   Task1 = taskEntity.Task1,
                   IsCompleted = taskEntity.IsCompleted,
                   EntryDate = taskEntity.EntryDate
                });
}
return View(tasks);