2

我正在使用 Microsoft MVC 和 C#。我创建了一个用户控件(example.ascx),并在顶部继承System.Web.MVC.ViewUserControl<PostTransferViewModel>

现在,当我的模型名称附加到 ViewUserControl 时,我得到“当前上下文中不存在名称‘模型’”和“当前上下文中不存在名称‘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.NET MVC Beta,而您后来将其更改为使用完全发布的版本,那么也很可能存在配置问题。尝试比较项目中的两个 web.config 文件(一个在根目录,一个在 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 回答
-2
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>

这个问题的解决方案

于 2013-07-01T14:36:54.657 回答