Pregunta

Estoy utilizando Microsoft MVC y C #. Tengo un control de usuario (example.ascx) creado en la parte superior y estoy heredando System.Web.MVC.ViewUserControl<PostTransferViewModel>

Ahora, mientras mi nombre de modelo se anexa a ViewUserControl, me sale "El nombre 'Modelo' no existe en el contexto actual" y "El nombre 'html' no existe en el contexto actual. Si me quita el <PostTransferViewModel> desde el final de ViewUserControl entonces todo funciona bien, pero necesito <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>
¿Fue útil?

Solución

Este mensaje del foro tiene un potencial solución a su problema :

  

A veces IntelliSense no aparece   en los archivos aspx/ascx/master si hay   un error de compilación en el   solicitud. Si intenta ejecutar el   sitio y se obtiene un error de compilación   desde ASP.NET, trate de repararlo y luego   ver si funciona.

     

Si la aplicación utilizaba anteriormente   ASP.NET MVC Beta y cambiar más tarde   que utilice la versión totalmente liberada   a continuación, también es muy probable que   hay un problema de configuración. Tratar   comparar los dos archivos web.config en   el proyecto (una en la raíz y uno   en la carpeta Vistas) y ver si hay   son las diferencias entre ellos.

Otros consejos

Yo tenía el mismo problema ...

En mi archivo web.config que tenía sólo los espacios de nombres regulares colocados en el nodo ...

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

Una vez que he añadido esto a mi nodo fue el error de distancia ...

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 esto ayude a alguien. Me he quedado atrapado durante un par de horas tratando de resolver esto.

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

solución para este problema

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top