好的,这是一个非常新手的问题,但我很难过。 我正在尝试使用ViewModel从实体对象获取数据并填充telerik mvc网格。
此时我有点困惑,需要你的帮助。
我理解错误消息,但我不确定如何解决这个问题,因为我对MVC很新。
---- ---- ERROR
错误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;
}
}
}
- 控制器 -
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 :(得分:0)
您不需要在控制器中第二次返回View(),但这不会导致任何问题。
您可以尝试对存储库中的返回变量进行强制转换,以便返回返回指定的类型:
// return vProjects;
// cast the return variable to return type
return (IQueryable<mvcMyAPP.ViewModels.ProjectViewModel>)vProjects;
我强烈推荐微软网站学习MVC,他们有一个很好的学习MVC的起点。
http://www.asp.net/mvc