1.
使用viewdata傳遞資料
我們在controller中定義如下:
viewdata[「message」] = 「hello word!」;
然後在view中讀取controller中定義的viewdata資料,**如下:
2.
使用tempdata傳遞資料
我們在controller中定義如下:
tempdata[「message」] = 「hello word!」;
然後在view中讀取controller中定義的tempdata資料,**如下:
3.
使用model傳遞資料
使用model傳遞資料的時候,通常在建立view的時候我們會選擇建立強型別view如下圖所示:
建立強型別的view以後,view的第一行**如下所示:
就代表了這個view使用的model為「mvcinduction.models.people」
總結:
1.viewdata與tempdata方式是弱型別的方式傳遞資料,而使用model傳遞資料是強型別的方式。
2.viewdata與tempdata是完全不同的資料型別,viewdata資料型別是viewdatadictionary類的例項化物件,而tempdata的資料型別是tempdatadictionary類的例項化物件。
3.tempdata實際上儲存在session中,控制器每次執行請求時都會從session中獲取tempdata資料並刪除該session。tempdata資料只能在控制器中傳遞一次,其中的每個元素也只能被訪問一次,訪問之後會被自動刪除。
4.viewdata只能在乙個action方法中進行設定,在相關的檢視頁面讀取,只對當前檢視有效。理論上,tempdata應該可以在乙個action中設定,多個頁面讀取。但是,實際上tempdata中的元素被訪問一次以後就會被刪除。
4.
mvc3多出了viewbag
傳遞資料
在asp.net mvc 3 web應用程式中,我們會用到viewdata與viewbag,對比一下:
viewdata
viewbag
它是key/value字典集合
它是dynamic型別對像
從asp.net mvc 1 就有了
asp.net mvc3 才有
基於asp.net 3.5 framework
基於asp.net 4.0與.net framework
viewdata比viewbag快
viewbag比viewdata慢
在viewpage中查詢資料時需要轉換合適的型別
在viewpage中查詢資料時不需要型別轉換
有一些型別轉換**
可讀性更好
在controller中使用viewdata:
public actionresult usingviewdata()對應usingviewdata view的cshtml:
Controller向View傳值方式
我們一般會向頁面傳遞乙個主要的型別的資料,一般情況下是乙個list viewbag viewdata tempdata之間的差別 viewdata與viewbag之間非常相似,二者使用場景基本一致,但是viewdata的型別時很明確的,而viewbag的型別時動態的,直接就可以使用,他們的傳值範圍是...
如何通過View獲取Controller
我們知道,對於乙個檢視控制器類uiviewcontroller,可以通過 self view 來獲取到它所管理的檢視uiview,反過來,對於乙個檢視類uiview,我們怎麼獲取到它的uiviewcontroller?uiview繼承自uiresponder,uiresponder有乙個例項方法 u...
如何呼叫父view的controller裡面的方法
答案如下 self superview nextresponder method self superview nextresponder method self.nextresponder method 上面的都可以,看情況使用,使用的時候最好判斷一下。即如下 可以進行判斷 id next sel...