程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> BlogEngine.Net架構與源代碼分析系列part14:實現分析(下)

BlogEngine.Net架構與源代碼分析系列part14:實現分析(下)

編輯:關於ASP.NET

網站頁面上值得參考的部分

BlogEngine.Net的成功不僅在於它的架構設計,它的代碼實現細節也都是很經典的,每個結構分割的很清晰很自然,希望大家多多品位一下。在這篇文章裡我將給大家介紹一下BlogEngine.Net的Web實現上的幾個亮點,包括Web.config,Ajax的運用等。

Web.config中的幾個結點說明

讓我們看一下appSettings結點中的各個選項的含義,以便您對整個BlogEngine.Net的認識更加清晰。

BlogEngine.FileExtension:在這裡我們可以自定義Url請求的後綴名稱,默認是.aspx。您可以定義自己喜歡的擴展名,例如.extguo,那麼對於文章等生成的Url就成了類似http://HostName/CategoryName/PostTitle.extguo的形式。這個結點的使用在很多地方都可以見到,例如:

Post類中的RelativeLink

1public string RelativeLink
2{
3 get
4 {
5 string slug = Utils.RemoveIllegalCharacters(Slug) + BlogSettings.Instance.FileExtension;
6
7 if (BlogSettings.Instance.TimeStampPostLinks)
8 return Utils.RelativeWebRoot + "post/" + DateCreated.ToString("yyyy/MM/dd/", CultureInfo.InvariantCulture) + slug;
9
10 return Utils.RelativeWebRoot + "post/" + slug;
11 }
12}

BlogSettings.Instance.FileExtension就是讀取這個結點獲得的擴展名。

BlogEngine.VirtualPath:主要是為一些文章等的鏈接而服務的。我們可以使用虛擬目錄安裝我們的BlogEngine.Net,那麼我們只要設置一下這裡就可以得到和直接在根目錄下一樣的效果。我們需要注意一下Utils關於Url處理的部分,其中:

Utils中的RelativeWebRoot

1public static string RelativeWebRoot
2{
3 get
4 {
5 if (_RelativeWebRoot == null)
6 _RelativeWebRoot = VirtualPathUtility.ToAbsolute(ConfigurationManager.AppSettings["BlogEngine.VirtualPath"]);
7
8 return _RelativeWebRoot;
9 }
10}

就是獲得相對Web目錄。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved