天天看點

Asp.net MVC2學習筆記3-View

前面我們說過了控制器(controller) 和方法(action);

本次要說的就是View以及和控制器(controller)、方法(action)之間的關系;

大家都知道 MVC中的 V 就是View 的意思,就是呈現給使用者的界面,以往的asp.net項目中叫webform,以前做asp.net的時候就是在工具箱裡面拖控件出來,然後簡單的排版一下就ok了,大多數用的伺服器控件來完成,然而我們會發現在生成的頁面中包含大量的hidden字段,微軟就是通過這邊的hidden字段的内容來維護每個服務端控件狀态的,如果頁面很多服務端控件的話整個頁面就顯得很臃腫。

而mvc推出後,就不再推薦使用服務端控件(當然是可以使用的),而用傳統的手寫html來完成(似乎又回到過去了?呵呵)。

首先我們說一下View 和Controller、action之間的關系:

Controller -->Action -->View

前幾篇文章說過如何從我們輸入的URL中找到route ,再找到controller,并去找到對應的action。而且也說過了action 的幾種傳回類型。

今天的主角就是View 類型:

public ActionResult Index()

{

ViewData["Message"] = "Welcome to ASP.NET MVC!";

return View();

}

這裡是預設Home 控制器下的Index 方法

1、ViewData["Message"]="Welcome to ASP.NET MVC!" ,這裡控制器和view之間傳遞參數、内容 可以通過ViewData 來實作,ViewData存放的内容是key/value形式,類似 Session等

2、return View(); 這裡就是傳回一個view,這裡它是沒有帶參數的,預設就是該Action名稱(Index);(我注:是以你也可以用return View("Index");來代替,也可以用這樣的方法來選擇呈現哪一個頁面)此時會去 Views/Home 檔案夾下找Index.aspx 這個頁面,如果找到,皆大歡喜,傳回 Index.aspx 内容,如果找不到,不好意思報錯,提示你找不到檔案,呵呵。

Asp.net MVC2學習筆記3-View

這裡的 View 有8個重載的構造函數,常用的除了無構造函數外,還有可以帶一個 viewname 的字元串:

return View("About"); 此時就可以根據 About 來尋找對應的aspx 頁面檔案了;

View(string viewname,string mastername);指定頁面檔案名和模闆名;

還有些構造函數的方式,大家可以在vs裡面檢視一下。

view 建立方式:

1、Views/對應的controller 檔案夾上右鍵添加-- View(我注:應該直接在Views檔案裡右鍵,add->View就可以了)

2、在Controller的方法裡面右鍵,有個Add View 菜單。(我注:不知道是不是版本不一樣,我看到的是Add->New Item,然後自己選擇MVC VIEW PAGE)

這裡 View 的檔案名盡量和Action名稱一樣,這樣就可以直接通過action 名稱來找到view了。

轉自:http://www.cnblogs.com/bboy/archive/2010/01/13/1646420.html