Name 'html' noch Namen 'Modell' exist im aktuellen Kontext in Usercontrol MVC und C #
-
22-09-2019 - |
Frage
Ich bin mit Microsoft MVC und C #. Ich habe ein Usercontrol (example.ascx) erstellt und an der Spitze Ich bin vererben System.Web.MVC.ViewUserControl<PostTransferViewModel>
Jetzt, während mein Modellname Viewusercontrol angehängt wird, erhalte ich „Der Name‚Model‘existiert nicht im aktuellen Kontext“ und „Der Name‚Html‘existiert nicht im aktuellen Kontext. Wenn ich die <PostTransferViewModel>
entfernt vom Ende des Viewusercontrol dann funktioniert alles gut, aber ich muss <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>
Lösung
Dieses Forum Beitrag hat eine mögliche Lösung für Ihr Problem :
Manchmal ist Intellisense nicht angezeigt, in
aspx/ascx/master
Dateien, wenn es ein Übersetzungsfehler in der Anwendung. Wenn Sie versuchen, den Lauf Website und Sie erhalten einen Kompilierungsfehler von ASP.NET, versuchen es zu reparieren und dann sehen, ob es funktioniert.Wenn die App zuvor mit ASP.NET MVC Beta und später geändert die vollständig freigegebene Version zu verwenden es ist dann sehr wahrscheinlich auch, dass gibt es ein Konfigurationsproblem. Versuchen Vergleich der beiden web.config-Dateien in Das Projekt (ein in der Wurzel und ein im Ordner Sichten) und sehen, ob es irgendwelche Unterschiede zwischen ihnen.
Andere Tipps
Ich hatte das gleiche Problem ...
In meiner web.config-Datei hatte ich nur die regulären platziert Namensräume im Knoten ...
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
Sobald ich hinzugefügt, dies zu meinem Knoten der Fehler ging weg ...
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>
Ich hoffe, das jemand heraus hilft. Ich war für ein paar Stunden stecken versuchen, dies herauszufinden.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
Lösung für dieses Problem