2012-12-31 3 views
0

Pro ASP.NET MVC3 Framework에서 MVC3을 배우려고합니다. 하지만 사용자 정의 HTML 도우미를 추가하는 곳이 하나 있습니다.사용자 정의 HTML 도우미가 작동하지 않습니다.

나는이 책에서 언급 한 모든 것을했지만 사용자 정의 HTML 도우미를 추가 할 수 없다.

누군가 도와주세요.

감사

List.cshtml

@model SportsStore.WebUI.Models.ProductListViewModel   


@{  
    ViewBag.Titke = "Product"; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <title>List</title> 
</head> 
<body> 
    <div> 
     @foreach (var p in Model.Products) 
     { 
      <div class="item"> 
       @p.Name 
       @p.Description 
       <h4>@p.Price.ToString("c")</h4>     
      </div> 
     } 
     <div class="Pager"> 
     @Html.PageLinks(Model.pagingInfo, x => Url.Action("List", new {page = x})) 
     </div> 
    </div>  
</body> 
</html> 

PagingHelper.Cs

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

namespace SportsStore.WebUI.HtmlHelpers 
{ 
    public static class PagingHelper 
    { 
     public static MvcHtmlString PageLinks(HtmlHelper helper, PagingInfo pagingInfo, Func<int, string> pageUrl) 
     { 
      StringBuilder linkString = 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"); 
       } 
       linkString.Append(tag.ToString()); 
      } 
      return MvcHtmlString.Create(linkString.ToString()); 

     } 
    } 
} 

의 Web.config

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <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.HtmlHelpers" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 
+0

어떤 오류가 발생합니까? – SLaks

+0

Error : System.Web.Mvc.HtmlHelper '에'PageLinks '에 대한 정의가 없습니다. – Vin05

+0

@ Vin05 - 응답에 SLaks가 표시되어 있으므로 함수 서명은 public static MvcHtmlString이어야합니다 PageLinks (이 HtmlHelper 도우미 ... ' –

답변

3

확장 방법을 만들지 않았습니다.

확장 메서드를 만들려면 첫 번째 매개 변수를 this 키워드로 꾸며야합니다.

+0

감사합니다. – Vin05

관련 문제