Question

J'utilise Microsoft MVC et C #. J'ai un usercontrol (example.ascx) créé et en haut, je suis héritant System.Web.MVC.ViewUserControl<PostTransferViewModel>

Maintenant, alors que mon nom du modèle est ajouté à ViewUserControl, je reçois « Le nom « modèle »n'existe pas dans le contexte actuel » et « Le nom « Html »n'existe pas dans le contexte actuel. Si j'ai enlevé le <PostTransferViewModel> à partir de la fin de ViewUserControl alors tout fonctionne très bien, mais je dois <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>
Était-ce utile?

La solution

Ce message forum a une solution potentielle à votre problème :

  

Parfois, IntelliSense ne se présente pas   dans les fichiers aspx/ascx/master s'il y a   une erreur de compilation dans le   application. Si vous essayez d'exécuter le   site et vous obtenez une erreur de compilation   de ASP.NET, essayez de le fixer et   voir si cela fonctionne.

     

Si l'application utilisait précédemment   ASP.NET MVC Beta et plus tard changé   à utiliser la version entièrement libérée   alors il est également tout à fait probable que   il y a un problème de configuration. Essayer   comparer les deux fichiers web.config   projet (une à la racine et une   dans le dossier Vues) et voir s'il   sont les différences entre eux.

Autres conseils

J'ai eu le même problème ...

Dans mon fichier web.config j'avais seulement les espaces de noms réguliers placés dans le noeud ...

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

Une fois que j'ai ajouté à mon nœud l'erreur est parti ...

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>

J'espère que cela aide quelqu'un. Je suis coincé pendant deux ou trois heures à essayer de comprendre.

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

Solution pour ce problème

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top