2014-02-11 5 views
6

So folge ich den Beispielen in dem Buch ASP.NET und MVC 5. Hier ist die Ansicht, die Ergebnisse der Fehler:Fehler zusammen mit ASP.NET und MVC 5 ... Fehler CS0246: Der Typ oder Namespace konnte nicht gefunden werden

@model SportsStore.WebUI.Models.ProductsListViewModel 

@{ 
    ViewBag.Title = "Products"; 
} 

@foreach (var p in Model.Products) 
{ 
    <div> 
     <h3>@p.Name</h3> 
     @p.Description 
     <h4>@p.Price.ToString("c")</h4> 
    </div> 
} 

<div> 
    @Html.PageLinks(Model.pagingInfo, x => Url.Action("List", new { page = x})) 
</div> 

Intellisense setzt die rote squigly Linie unter pagelinks (jedoch in die Bücher projizieren sie erkennt es richtig). Pagelinks wird im selben Projekt wie folgt definiert (es gibt drei Projekte in dieser Lösung):

using System; 
using System.Text; 
using System.Web.Mvc; 
using SportsStore.WebUI.Models; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace SportsStore.WebUI.HtmlHelpers 
{ 
    public static class PagingHelpers 
    { 
     public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl) 
     { 
      StringBuilder result = new StringBuilder(); 

      for (int i = 1; i <= pagingInfo.TotalPages; i++) 
      { 
       TagBuilder tag = new TagBuilder("a"); 
       tag.MergeAttribute("href", pageUrl(i)); 
       tag.InnerHtml = i.ToString(); 

       if (i == pagingInfo.CurrentPage) 
       { 
        tag.AddCssClass("selected"); 
        tag.AddCssClass("btn-primary"); 
       } 
       tag.AddCssClass("btn btn-default"); 
       result.Append(tag.ToString()); 
      } 

     return MvcHtmlString.Create(result.ToString()); 
     } 
    } 
} 

Aus welchem ​​Grund es sagt mir, es nicht den sportsstore Namespace finden. Ich bin hier so festgefahren. Ich habe das fertige Projekt tatsächlich aus dem Buch zusammengestellt und bin durchgegangen, um nachzusehen, ob ich irgendwelche Unterschiede finden kann, bisher kein Glück. Ich überprüfte buchstäblich jede Referenz und verglich beide web.config-Dateien (die wichtigste und die für die Ansicht). Selbst wenn ich eine @ using-Anweisung in die Ansicht lege, findet sie sie immer noch nicht. Ich hatte viele Probleme, dieses Projekt tatsächlich zu kompilieren. Früher hatte ich eine Menge Probleme mit ninject, die mich dazu veranlassten, die Datei web.config zu bearbeiten.

Wenn jemand eine ZIP meiner gesamten Lösung möchte, würde ich mich freuen, es irgendwo hochladen (es ist etwa 24 MB).

Jede Hilfe wird geschätzt !!

Danke, Tom

Edit:

Hier ist der entsprechende Abschnitt in der Datei web.config für die Ansicht:

<namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="SportsStore.WebUI" /> 
    <add namespace="SportStore.WebUI.HtmlHelpers"/> 

    </namespaces> 
+1

Überprüfen Sie Ihre web.config und stellen Sie sicher, dass der vollständige Namespace vorhanden ist. Weitere Informationen finden Sie in dieser Antwort: http://stackoverflow.com/a/4450122/546000 –

+2

Sie haben den SportsStore-Namespace im letzten Eintrag falsch geschrieben. Sie vermissen ein 's' vor dem Store – LukeP

+0

Ich werde versuchen, zu laden, es muss später sein. Ich bin bei meinem staatlichen Job und firewall die meisten der regulären Upload-Websites. Könnte ich es vielleicht an einen von euch schicken? Ich werde die Verzeichnisse bin und obj löschen, um die Größe gering zu halten. – user3298634

Antwort

1

Versuchen Sie, den Namensraum zur Verfügung, Ihre Ansichten zu machen durch Ihre Webkonfiguration

<system.web.webPages.razor> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     <add namespace="SportsStore.WebUI.HtmlHelpers" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+0

Ich war mir ziemlich sicher, dass es etwas mit der web.config zu tun hatte, aber meins ist genau das gleiche wie das Bücher-Projekt, immer noch nicht Glück ... – user3298634

+0

Können Sie mir den Pfad der Web-Konfiguration sagen, von der Sie sprechen? Es sollte das im Ordner views sein. – SpykeBytes

+0

Ich sollte auch hinzufügen, dass, wenn ich eine @ using-Anweisung zur Ansicht hinzufügen intellisense ordnungsgemäß Seitenverknüpfungen (keine rote Zickzacklinie) aber es schlägt immer noch mit dem gleichen Fehler – user3298634

4

Sie haben den SportsStore-Namespace im letzten Eintrag falsch geschrieben. Du verpasst ein 's' vor dem Store.

Verwandte Themen