在ASP.NET MVC 中,直接或者間接地實(shí)現(xiàn)了IController接口的類,就會(huì)被Mvc框架認(rèn)為是控制器。
3. 控制器從哪些地方訪問(wèn)輸入的數(shù)據(jù)?
2)① 使用動(dòng)作方法參數(shù),Mvc不允許動(dòng)作方法有ref回out參數(shù),Mvc遇到這個(gè)情況,就直接拋出異常。
③ 參數(shù)對(duì)象怎么實(shí)例化的?底層的Controller類使用了叫“值提供器”和“模型綁定”的組件來(lái)為動(dòng)作方法獲取參數(shù)值。
有2種方法:其一讓參數(shù)義成可空類型?;蛘呓o參數(shù)設(shè)置默認(rèn)值。
Mvc框架中有許多的內(nèi)置的動(dòng)作結(jié)果類型,這些類型都是派生于ActionResult,其中有不少類型在Controller類中有便利的方法。
(應(yīng)用程序使用了區(qū)域就從此處開(kāi)始查找視圖)
/Areas/<AreaName>/Views/<controllerName>/<ViewName>.aspx
/Areas/<AreaName>/Views/<controllerName>/<ViewName>.ascx
/Areas/<AreaName>/Views/Shared/<ViewName>.aspx
/Areas/<AreaName>/Views/Shared/<ViewName>.ascx
/Areas/<AreaName>/Views/<controllerName>/<ViewName>.cshtml
/Areas/<AreaName>/Views/<controllerName>/<ViewName>.vbhtml
/Areas/<AreaName>/Views/Shared/<ViewName>.cshtml
/Areas/<AreaName>/Views/Shared/<ViewName>.vbhtml
(應(yīng)用程序沒(méi)有使用區(qū)域就從此處開(kāi)始查找,或者使用了區(qū)域,但早上面沒(méi)有找到視圖,就會(huì)接著道下面的地方查找)
/Views/<controllerName>/<ViewName>.aspx
/Views/<controllerName>/<ViewName>.ascx
/Views/<controllerName>/<ViewName>.cshtml
/Views/<controllerName>/<ViewName>.vbhtml
/Views/Shared/<ViewName>.cshtml
/Views/Shared/<ViewName>.cshtml
(ControllerName):控制器名稱名稱去掉"Controller"字符串之后的字符串。
①M(fèi)vc框架只要在一個(gè)位置查找到了視圖,就會(huì)停止查找動(dòng)作,而這個(gè)找到的視圖便被用來(lái)把響應(yīng)渲染給客戶端。
②Mvc框架搜索視圖的目錄序列是“約定優(yōu)于配置”。不需要注冊(cè)視圖文件,只需要你把視圖文件放在一組已知的位置中,Mvc框架便可以識(shí)別他們。
怎么把數(shù)據(jù)從動(dòng)作方法傳遞給視圖。
可以把一個(gè)對(duì)象作為View方法的參數(shù)發(fā)送給視圖。
這樣我們可以再視圖中使用Model關(guān)鍵字訪問(wèn)此對(duì)象了。
該特性允許你在一個(gè)動(dòng)態(tài)的對(duì)象上定義任何的屬性,并在視圖中訪問(wèn)它。
ViewData特性類似于View Bag特性,他是用ViewDataDictionary類實(shí)現(xiàn)的,而不是動(dòng)態(tài)對(duì)象。
聯(lián)系客服