一能耻、動(dòng)態(tài)類型
1、ViewBag(動(dòng)態(tài)類型):可以向動(dòng)態(tài)類型添加任何的屬性和方法。
二愚争、控制器傳輸數(shù)據(jù)到VIEW視圖
1、ViewBag
控制器賦值:ViewBag.Content = "這是Controller里的數(shù)據(jù)"挤聘。視圖取值:@ViewBag.Content
控制器賦值:ViewBag.自定義變量 = "內(nèi)容"轰枝。視圖取值:@ViewBag.自定義變量
2、ViewData
控制器賦值:ViewData["Age"] = 40组去。視圖取值:@ViewData["Age"]/@ViewBag.Age
注意:以上兩種方法一般存放不是主要的數(shù)據(jù)鞍陨;存儲(chǔ)結(jié)構(gòu)一樣,都屬于viewdata从隆。不可跨頁(yè)面使用
3诚撵、TempData:存儲(chǔ)之后,讀取一次數(shù)據(jù)后將被清空键闺。
控制器賦值:TempData["Hello"] = "World"寿烟。視圖取值:@TempData["Hello"]
注意:本質(zhì)就是session,可跨頁(yè)面使用辛燥。
4筛武、View
常用方法:
View():無(wú)傳參缝其,訪問(wèn)方法同名的視圖,默認(rèn)母版頁(yè)
View(Model):傳遞數(shù)據(jù)徘六,參數(shù)Object類型(一般創(chuàng)建實(shí)體類)内边,訪問(wèn)方法同名的視圖,默認(rèn)母版頁(yè)
View(ViewName,Model):傳遞數(shù)據(jù)硕噩,View視圖名稱假残,Object對(duì)象數(shù)據(jù)(一般創(chuàng)建實(shí)體類),訪問(wèn)ViewName視圖炉擅,默認(rèn)母版頁(yè)
View(ViewName,Layout,Model):傳遞數(shù)據(jù)辉懒,View視圖名稱,Object對(duì)象數(shù)據(jù)(一般創(chuàng)建實(shí)體類)谍失,訪問(wèn)ViewName視圖眶俩,Layout母版頁(yè)
4.1、View傳參Object對(duì)象(Model)
說(shuō)明:view對(duì)應(yīng)頁(yè)面頁(yè)頭添加model聲明快鱼,添加后視圖會(huì)變?yōu)閺?qiáng)類型視圖颠印,這時(shí)候傳過(guò)來(lái)的數(shù)據(jù)字段就可以通過(guò)對(duì)象.出來(lái);寫(xiě)法:@model 解決方案名稱.文件夾.類名
model里面的數(shù)據(jù)類型一定要和View方法參數(shù)里的Model類型一致
三抹竹、View視圖傳輸數(shù)據(jù)到控制器
1线罕、參數(shù)接收:方法參數(shù);等同于Request.QueryString/Request.Form
2窃判、對(duì)象接收:后臺(tái)定義一個(gè)類钞楼,form表單控件的name屬性對(duì)應(yīng)實(shí)體類中的字段名稱。
對(duì)象校驗(yàn):EF模型數(shù)據(jù)校驗(yàn)袄琳,控制器通過(guò)ModesState.IsValid判斷對(duì)象數(shù)據(jù)是否經(jīng)過(guò)校驗(yàn)
四询件、model番外
1、EF屬性校驗(yàn)
Display:設(shè)置前端label顯示屬性文本唆樊;Required:非空設(shè)置宛琅;StringLength:字符串長(zhǎng)度設(shè)置;MinLength:最小長(zhǎng)度設(shè)置逗旁;DataType:數(shù)據(jù)類型設(shè)置嘿辟;EmailAddress:郵箱類型自檢
2、快速生成視圖(默認(rèn)使用bootstarp):
控制器-右鍵Action-添加視圖-模板(選擇對(duì)應(yīng))-選擇模型類
3片效、視圖要點(diǎn)記錄
AntiForgeryToken:防偽驗(yàn)證token仓洼;對(duì)應(yīng)控制器post方法添加: [ValidateAntiForgeryToken]啟用防偽驗(yàn)證。
ValidationSummary:錯(cuò)誤匯總堤舒。自定義添加模型錯(cuò)誤信息:ModelState.AddModelError("","錯(cuò)誤信息");
htmlAttributes:添加http控件屬性?? htmlAttributes = new { @class = "form-control"}
4色建、一個(gè)視圖對(duì)應(yīng)兩個(gè)控制器方法:GET/POST。Get用于訪問(wèn)頁(yè)面舌缤,Post用于提交數(shù)據(jù)箕戳。