MVC View與Control之間資料傳遞

2022-02-21 11:08:30 字數 1821 閱讀 4036

viewdata[「message_viewdata」] = 「 hello viewdata!」;

在view中讀取controller中定義的viewdata資料,**如下:

@html.encode(viewdata["message_viewdata"])

我們在controller中定義如下:viewbag.message_viewbag =  「 hello viewbag !」;

我們在controller中定義如下:tempdata[「message」] = 「hello word!」;

建立強型別的view以後,view的第一行**如下所示:@model test.models.hellomodel 

就代表了這個view使用的model為「test.models.hellomodel」

然後在view中讀取model中定義的資料,**如下:@html.encode(model.name)

主要通過 傳送表單的方式來實現。具體的方式有:

@using (html.beginform("hellomodeltest", "home", formmethod.post)) 

控制器中

或者

[httppost] 

public

actionresult hellomodeltest(formcollection fc)

@*為了下面的submit可以post提交到eidt*@

@using (html.beginform("edit", "testmovie", formmethod.post))

也可以@using (html.beginform())

控制器中

或者 public actionresult edit(moviedb moviedb) //

這個預設的模型繫結

return

view(moviedb);

}

當你的action方法是以乙個模型物件充當引數時,mvc執行時將會用模型繫結來構建該引數。

預設用於模型繫結的是 defaultmodelbinder,以上述的hellomodel為例,defaultmodelbinder將會檢索出所有可用的hellomodel屬性用於繫結模型。

根據命名約定,defaultmodelbinder能夠自動地在請求中獲取相應的值來填充hellomodel物件(它還能建立乙個物件的例項來填充)

換句話說:假設hellomodel有乙個name屬性,那麼模型繫結就會在請求中查詢名為name的引數。注意我說的是在「請求中」,而不是「表單集合」中。

模型繫結會在請求中的各個方面進行值查詢,這裡面包括路由資料,查詢字串,表單集合。有必要的話你還可以新增自定義的值提供資訊。

模型繫結不並侷限於http post及複雜引數(如hellomodel),你完全可以傳入乙個原始的簡單引數:

public actionresult hellomodeltest( string name,string text) 

// ….

在該場景中,模型繫結將會在請求中查詢名。

Razor與SPA,關於MVC View實現的思考

對於cshtml,從技術上講,完全是可以去掉cs,直接變成html的。如果走極端 我認為是極端 這個html應該是這樣的 1 頁面為純粹的html,只有容器和初步的布局 2 頁面初始化資料,如當前登陸者的上下文資訊,下拉列表的繫結資料,其它預設資料等,在頁面第一次load完畢後,通過ajax請求獲取...

WPF控制項(Control類 顏色與字型)

wpf控制項分類 控制項是與使用者互動的元素。控制項可以獲得焦點,能接受鍵盤或滑鼠的輸入。所有控制項的基類是system.windows.control類,這類包括一些基本功能 控制項包括兩個屬性background和foreground屬性,這兩個屬性使用brush物件。刷子物件的派生類包括sol...

View與Control間的資料互動

view與control間的資料互動 1.viewbag.name name1 2.viewdata vd view data 3.tempdata td temp data 4.model viewbag和viewdata只在當前的action中有效,生命週期和 view 相同 tempdata可...