在usercontrol MVC和C#中,当前上下文中存在名称'html'或名称'model'

J.B*_*.B. 2 c# asp.net-mvc user-controls viewusercontrol viewmodel

我正在使用Microsoft MVC和C#.我创建了一个usercontrol(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>
Run Code Online (Sandbox Code Playgroud)

Dav*_*her 5

此论坛帖子可以解决您的问题:

aspx/ascx/master如果应用程序中存在编译错误,有时Intellisense不会显示在文件中.如果您尝试运行该站点并从ASP.NET获得编译错误,请尝试修复它,然后查看它是否有效.

如果该应用程序以前使用的是ASP.NET MVC Beta,并且您之后将其更改为使用完全发布的版本,则很可能存在配置问题.尝试比较项目中的两个web.config文件(一个在根目录中,一个在Views文件夹中),看看它们之间是否存在任何差异.