程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC雕蟲小技 1-2

ASP.NET MVC雕蟲小技 1-2

編輯:關於ASP.NET

看到AnyTao和TerryLee分享的關於ASP.NET MVC使用和優化的技巧,不免手癢,也分享一下這一年多來ASP.NET MVC開發的積累。

其 中未必是一些高效的技巧,但是的確是能解決問題,也未必有什麼高深的原理,只是我覺得值得分享。

1.Controller來控制HTML的 Title

我想大部分朋友都有在Controller裡面指定Html頁面Title的需求。

我習慣於先寫使用的代碼再去完善其實現,而指定一 個Title最方便的形式莫過於:

1: public ActionResult Index(int id) {

2:     var article=Db.GetArticle(id);//獲取數據庫裡的文章

3:     Title=article.Name;

4:     return View ();

5: }

當然,這段代碼是不能執行的,因為Controller並沒有內建的Title屬性,不過沒關系,我們可以自定義 一個: 

1: abstract public class MyBaseController : Controller {

2:        public string Title {

3:            set {

4:                ViewData["Page_Title"] = value;

5:            }

6:        }

7: }

然後將我們的 Controller換為這個MyBaseController,之後在Master中寫ViewData[“Page_Title”]的輸出就好了。

1: <title><%=ViewData["Page_Title"] %></title>

OK,這個願意實現了。

當然做SEO的話 Keyword和Description也可以這樣來搞。

2.ViewModel中傳遞Controller中定義的上下文

老趙十分推ViewModel於是我也做了不 少這方面的實踐,發現的確不錯。但是有個問題,就是Controller中產生的上下文怎麼傳到View中去,比如說自定義的用戶信息,等一些非 static的類型,而我又不想到View中再實例化一遍。

解決方法:ViewModel中另加一上下文屬性(在我和程序中這些上下文繼承於 IContext接口,而在Controller中它的屬性是CHContext)

1: public class HomeIndexViewModel {

2:     public IContext Context { get; set; }//這個屬性就是解決它的方法

3:     public string Message { get; set; }

4: }

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