Nombre 'html', ni nombre existen 'modelo' en el contexto actual en el control de usuario MVC y C #
-
22-09-2019 - |
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>
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