Domanda

Sto usando Microsoft MVC e C #. Ho un UserControl (example.ascx) creato e nella parte superiore sto ereditando System.Web.MVC.ViewUserControl<PostTransferViewModel>

Ora, mentre il mio nome del modello è allegato al ViewUserControl, ottengo "Il nome 'modello' non esiste nel contesto attuale" e "Il nome 'html' non esiste nel contesto corrente. Se ho tolto il <PostTransferViewModel> dalla fine del ViewUserControl allora tutto funziona bene, ma ho bisogno <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>
È stato utile?

Soluzione

Questo post forum ha una potenziale soluzione al vostro problema :

  

A volte Intellisense non si presenta   in file aspx/ascx/master se c'è   un errore di compilazione nella   applicazione. Se si tenta di eseguire il   sito e si ottiene un errore di compilazione   da ASP.NET, provare a risolverlo e poi   vedere se funziona.

     

Se l'applicazione è stato precedentemente utilizzato   ASP.NET MVC beta e poi cambiato   in modo da utilizzare la versione completamente rilasciata   poi è anche molto probabile che   c'è un problema di configurazione. Provare   confronto tra i due file web.config in   il progetto (uno nella radice e uno   nella cartella Viste) e vedere se ci   sono delle differenze tra di loro.

Altri suggerimenti

Ho avuto lo stesso problema ...

Nel mio file web.config ho avuto solo gli spazi dei nomi normali poste nel nodo ...

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

Una volta ho aggiunto questo al mio nodo l'errore è andato via ...

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>

Spero che questo aiuta qualcuno. Sono rimasto bloccato per un paio d'ore cercando di capire questo.

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

soluzione per questo problema

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top