2014-02-11 229 views
6

因此,我正在遵循書籍ASP.NET和MVC 5中的示例。下面是導致錯誤:錯誤跟隨ASP.NET和MVC 5 ...錯誤CS0246:找不到類型或名稱空間

@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> 

智能感知使紅色squigly線下PageLinks(但是在書本它投影正確識別它)。 PageLinks在如下同一項目中定義(有此解決方案3個項目):

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()); 
     } 
    } 
} 

無論出於何種原因,它不斷告訴我它無法找到sportsstore命名空間。我很困在這裏。實際上,我已經從書中編譯完成的項目,並經過檢查,看看能否找到任何差異,但至今沒有運氣。我從字面上檢查了每個引用,並比較了兩個web.config文件(主視圖和視圖)。即使我在視圖中放置@using指令,它仍然找不到它。實際上編譯這個項目時遇到了很多問題。早些時候,我有一些ninject問題,需要我編輯web.config文件。

如果有人想要我的整個解決方案的.zip,我很樂意將它上傳到某個地方(大約24mb)。

任何幫助讚賞!

感謝, 湯姆

編輯:

這裏是視圖的web.config文件中的相應部分:

<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

檢查你的web.config,並確保完整的名稱空間在那裏,請參閱此答案以獲取更多信息:http://stackoverflow.com/a/4450122/546000 –

+2

您在最後一項中拼寫了SportsStore命名空間。您在存儲 – LukeP

+0

之前錯過了一個's'我會嘗試上傳,可能要晚一些。我在我的州工作,他們防火牆大多數常規上傳網站。我可以通過電子郵件發送給你們中的一個嗎?我將刪除bin和obj目錄以減小大小。 – user3298634

回答

1

試圖通過使提供給您的看法您的命名空間網頁配置。

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

我非常確定它與web.config有關,但我的書與項目完全一樣,仍然沒有運氣... – user3298634

+0

你能告訴我你說的網絡配置的路徑嗎?它應該是視圖文件夾中的一個。 – SpykeBytes

+0

我還應該補充一點,如果我在視圖中添加@using指令,intellisense會正確地拾取PageLinks(沒有紅色的波浪線),但它仍然會失敗並出現相同的錯誤 – user3298634

4

您在最後一項中拼寫了SportsStore命名空間。您在Store之前缺少's'。

相關問題