WebSurfer's Home

トップ > Blog 1   |   ログイン
APMLフィルター

W3C 検証にパスしない

by WebSurfer 2011年6月13日 22:58

ページングする際に &page=n(n はページ番号)というクエリ文字列がページャーのリンクの URL に追加 される場合があります。しかしながら、& のままでは W3C Markup Validation に通りません。HTML エンコー ドして & にする必要があります。この問題には今まで気がつきませんでした。(汗)

この問題を解決するには、User controls/PostList.ascx.cs の InitPaging メソッドを以下のように修正しま す。

private void InitPaging()
{
  string path = Request.RawUrl;

  if (!(Request.QueryString["year"] != null || 
    Request.QueryString["date"] != null))
    path = REMOVE_DEFAULT_ASPX.Replace(path, string.Empty);

  if (path.Contains("?"))
  {
    if (path.Contains("page="))
    {
      int index = path.IndexOf("page=");
      path = path.Substring(0, index);
    }
    else
    {
      path += "&";
    }
  }
  else
  {
    path += "?";
  }

  int page = GetPageIndex();
  string url = path + "page={0}";

  // 下記の追加のみ
  url = url.Replace("&", "&");

  hlNext.HRef = string.Format(url, page);		
  hlPrev.HRef = string.Format(url, page + 2);

  if (page == 0)
  {
    hlNext.Visible = false;
  }
  else
  {
    (Page as BlogBasePage).AddGenericLink(
      "next", 
      "Next page", 
      hlNext.HRef);
    Page.Title += " - Page " + (page + 1);
  }

  if (hlPrev.Visible)
    (Page as BlogBasePage).AddGenericLink(
      "prev", 
      "Previous page", 
      string.Format(url, page + 2));
}

Tags:

BlogEngine.NET

About this blog

2010年5月にこのブログを立ち上げました。主に ASP.NET Web アプリ関係の記事です。

Calendar

<<  2024年3月  >>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

View posts in large calendar