Pergunta

Estou usando o Microsoft MVC e C#. Eu tenho um UserControl (exemplo.ascx) criado e no topo estou herdando System.Web.MVC.ViewUserControl<PostTransferViewModel>

Agora, enquanto meu nome de modelo é anexado ao ViewUserControl, eu recebo "o nome 'modelo' não existe no contexto atual" e "o nome 'html' não existe no contexto atual. Se eu removesse o <PostTransferViewModel> No final do ViewUserControl, tudo funciona bem, mas eu preciso <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>
Foi útil?

Solução

Este post do fórum tem um solução potencial para o seu problema:

Às vezes, o Intellisense não aparece em aspx/ascx/master arquivos se houver um erro de compilação no aplicativo. Se você tentar executar o site e obter um erro de compilação do ASP.NET, tente corrigi -lo e veja se ele funciona.

Se o aplicativo estava usando anteriormente o ASP.NET MVC Beta e você mais tarde o alterou para usar a versão totalmente lançada, também é muito provável que haja um problema de configuração. Tente comparar os dois arquivos web.config no projeto (um na raiz e outro na pasta Views) e veja se há alguma diferença entre eles.

Outras dicas

Eu tive o mesmo problema...

No meu arquivo web.config, eu tinha apenas os namespaces regulares colocados no nó ...

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

Depois que eu adicionei isso ao meu nó, o erro foi embora ...

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>

Espero que isso ajude alguém a sair. Fiquei preso por algumas horas tentando descobrir isso.

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>

Solução para este problema

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top