我正在尝试创建一个强类型的局部视图
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Pt.Data.Services>>" %>
<table>
<% foreach (Pt.Data.Services item in Model)
{ Html.RenderPartial("ServiceItem",item); } %>
</table>
在控制器中:
IEnumerable<Services> Model=null;
using (tl ctx = new tl(Config.ConnectionString))
{
Model = ctx.Services.ToList();
}
return View("List",Model);
在引用二进制程序集的项目中运行时,这很有效System.Web.Mvc
。
但是,如果我删除二进制程序集并添加一个带有 MVC 源代码的项目进行调试,它就会停止识别强类型视图。
它的工作方式ViewPage
类似于ViewPage<TModel>
结果我得到了错误:
编译器错误消息:CS1579:foreach 语句无法对“object”类型的变量进行操作,因为“object”不包含“GetEnumerator”的公共定义`
为什么这适用于已编译的 MVC,但不适用于源代码?以及如何使源正确运行?