1

強く型付けされた部分ビューを作成しようとしています

<%@ 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:「オブジェクト」に「GetEnumerator」のパブリック定義が含まれていないため、foreach ステートメントは「オブジェクト」型の変数を操作できません。

これがコンパイルされた MVC では機能するのに、ソースでは機能しないのはなぜですか? また、ソースを正しく実行するにはどうすればよいですか?

4

2 に答える 2

4

~/Views/Web.config の次の行を変更しましたか?

<pages validateRequest="false"
       pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,
                             System.Web.Mvc, Version=1.0.0.0, Culture=neutral,
                             PublicKeyToken=31BF3856AD364E35"
       pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0,
                     Culture=neutral, PublicKeyToken=31BF3856AD364E35"
       userControlBaseType="System.Web.Mvc.ViewUserControl,
                            System.Web.Mvc, Version=1.0.0.0, Culture=neutral,
                            PublicKeyToken=31BF3856AD364E35">

これに?:

<pages validateRequest="false"
       pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,
                             System.Web.Mvc, Version=1.0.0.0, Culture=neutral,
                             PublicKeyToken=NULL"
       pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0,
                     Culture=neutral, PublicKeyToken=NULL"
       userControlBaseType="System.Web.Mvc.ViewUserControl,
                            System.Web.Mvc, Version=1.0.0.0, Culture=neutral,
                            PublicKeyToken=NULL">

実際、このスティーブ・サンダーソンの投稿は参考になるかもしれません

于 2009-05-21T18:01:36.183 に答える