Controller向View傳遞資料

2021-09-06 18:02:12 字數 1876 閱讀 7831

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...