2

Microsoft MVC と C# を使用しています。ユーザーコントロール(example.ascx)を作成し、上部に継承していますSystem.Web.MVC.ViewUserControl<PostTransferViewModel>

ここで、モデル名が ViewUserControl に追加されますが、「名前 'Model' は現在のコンテキストに存在しません」および「名前 'Html' は現在のコンテキストに存在しません<PostTransferViewModel>。 ViewUserControl その後、すべて正常に動作しますが、必要<PostTransferViewModel>です。

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PostTransferViewModel>" %>

<div class="postTransferTank">
    <h2>
        Approved Post Transfers</h2>
    <% if (Model.ApprovedPostTransfers.Count() == 0)
       { %>
    <span class="emptyList">There are currently no approved Post Transfers for this tank.</span><br />
    <% } %>
    <% else
        { %>
    <%=Html.DisplayFor(x => x.ApprovedPostTransfers,"PostTransferList") %>
    <% } %>
    <br />
    <%=Html.ActionLink<PostTransferController>(x => x.NewPostTransfer(), "Enter Post Transfer", new { @class = "create-link" })%>
    <br />
    <% if (Model.DraftPostTransfers.Count() != 0)
       { %>
    <h2>
        Draft Post Transfers</h2>
    <%=Html.DisplayFor(x => x.DraftPostTransfers, "PostTransferList") %>
    <% } %>
</div>
4

3 に答える 3

5

このフォーラム投稿には、問題に対する潜在的な解決策があります

アプリケーションでコンパイルエラーが発生した場合、Intellisenseがaspx/ascx/masterファイルに表示されないことがあります。サイトを実行しようとしてASP.NETからコンパイルエラーが発生した場合は、サイトを修正して、機能するかどうかを確認してください。

アプリが以前にASP.NETMVCBetaを使用していて、後で完全にリリースされたバージョンを使用するように変更した場合は、構成に問題がある可能性もあります。プロジェクト内の2つのweb.configファイル(1つはルートにあり、もう1つはViewsフォルダーにあります)を比較して、それらの間に違いがあるかどうかを確認してください。

于 2010-02-24T14:11:48.183 に答える
3

私は同じ問題を抱えていました...

私のweb.configファイルには、ノードに配置された通常の名前空間だけがありました...

    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />

これをノードに追加すると、エラーはなくなりました...

pages validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>

これが誰かを助けることを願っています。これを理解しようとして数時間立ち往生しました。

于 2011-06-24T18:46:00.127 に答える