2011-05-05 118 views
0

好吧,這是一個非常新手的問題,但我很難過。 我想使用ViewModel從實體對象獲取我的數據並填充telerik mvc網格。使用ViewModel填充Telerik網格(MVC3)

在這一點上我有點困惑,需要你的幫助。

我明白這個錯誤信息,但我不確定我是如何解決這個問題的,因爲我對MVC真的很陌生。

---- ----錯誤

錯誤1無法隱式轉換類型 'System.Linq.IQueryable' 到 'System.Linq.IQueryable'。一個顯式轉換存在(是否缺少強制轉換?)ProjectRepository.cs 23 20 MvcMyAPP

我有這樣的視圖模型:

--VIEWMODEL--

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.UI.WebControls; 

namespace mvcMyModel.ViewModels 
{ 
    public class ProjectViewModel 
    { 
     public IQueryable<mvcMyAPP.Models.ProjectRepository> ProjectList 
     { 
      get; 
      set; 
     } 
    } 
} 

--CONTROLLER--

namespace MvcMyAPP.Controllers 
{ 
    public class HomeController : Controller 
    { 
     // GET: /Home/ 
     ProjectRepository Repository = new ProjectRepository(); 

     public ActionResult Index() 
     { 
      ProjectViewModel objProjectViewModel = new ProjectViewModel(); 
      objProjectViewModel.ProjectList = Repository.GetProjects(); 
      return View(objProjectViewModel); 
      return View(); 
     } 
    } 
} 

---- REPOSITORY(MODEL)-----

namespace mvcMyAPP.Models 
{ 
    public class ProjectRepository 
    { 

     mvcMyAPP.Models.MYEntities MYDB = new MYEntities(); 
     //Fetching data from table 

     public IQueryable<mvcMyAPP.ViewModels.ProjectViewModel> GetProjects() 
     { 
      var vProjects = (from tblProjects in MYDB.Projects 
           select tblProjects); 
      return vProjects; 
     } 
    } 

--- GRID ---

@{Html.Telerik().Grid(Model.ProjectList) 
.Name(
"Grid") 
.Pageable() 
.Sortable() 
.Filterable() 
.Groupable() 
.Render(); 
} 
+0

好吧,我的實體類有一個命名空間幾乎相同的項目創建的命名空間。 我有控制器和模型等mvcMyAPP實體類有一個命名空間MvcMyAPP。大寫字母M只是使實體類不可用,我沒有注意到。一旦我訪問MvcMyAPP.T_PROJECT一組IQueryable 作爲返回類型,它就起作用了。 Weww! – Keith 2011-05-05 14:03:47

+0

您無需發表評論提供更多信息。只需編輯你的問題。 – dandan78 2011-05-06 10:43:19

回答

0

你並不需要在控制器中的第二返回查看(),但沒有造成任何問題。

你可以嘗試把在返回變量鑄造從您的倉庫,所以它返回在返回指定的類型:

// return vProjects; 

// cast the return variable to return type 
return (IQueryable<mvcMyAPP.ViewModels.ProjectViewModel>)vProjects; 

我強烈建議微軟網站學習MVC,他們有一個很好的起點學習MVC。

http://www.asp.net/mvc