5 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
Controller 處理流程:
1. 頁(yè)面處理流程:
發(fā)送請(qǐng)求->UrlRoutingModule捕獲請(qǐng)求–> MvcRouteHandler.GetHttpHandler()–> MvcHandler.ProcessRequest()
2.MvcHandler.ProcessRequest()處理流程:
使用工廠方法獲取具體的Controller–>Controller.Execute()–>釋放Controller對(duì)象
3.Controller.Execute()處理流程:
獲取Action–>調(diào)用Action方法獲取返回的ActionResult–>調(diào)用ActionResult.ExecuteResult()方法
4.ActionResult.ExecuteResult()處理流程:
獲取IView對(duì)象->根據(jù)IView對(duì)象中的頁(yè)面路徑獲取Page類->調(diào)用IView.RenderView()方法(內(nèi)部調(diào)用Page.RenderView方法)

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
為什么頁(yè)面Post后action可以獲取到參數(shù)
在其它高級(jí)語(yǔ)言中,賦值構(gòu)成了一個(gè)語(yǔ)句,稱為賦值語(yǔ)句。 而在C中,把“=”定義為運(yùn)算符,從而組成賦值表達(dá)式。 凡是表達(dá)式可以出現(xiàn)的地方均可出現(xiàn)賦值表達(dá)式。
例如,式子:
x=(a=5)+(b=8)
是合法的。它的意義是把5賦予a,8賦予b,再把a(bǔ),b相加,和賦予x,故x應(yīng)等于13。
在C語(yǔ)言中也可以組成賦值語(yǔ)句,按照C語(yǔ)言規(guī)定,任何表達(dá)式在其未尾加上分號(hào)就構(gòu)成為語(yǔ)句。因此如
x=8;a=b=c=5;
都是賦值語(yǔ)句,在前面各例中我們已大量使用過(guò)了。
2. 類型轉(zhuǎn)換
如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,即把賦值號(hào)右邊的類型換成左邊的類型。具體規(guī)定如下:
1) 實(shí)型賦予整型,舍去小數(shù)部分。前面的例子已經(jīng)說(shuō)明了這種情況。
2) 整型賦予實(shí)型,數(shù)值不變,但將以浮點(diǎn)形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。
3) 字符型賦予整型,由于字符型為一個(gè)字節(jié),而整型為二個(gè)字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0。整型賦予字符型,只把低八位賦予字符量。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
form中action屬性后面?zhèn)鬟f參數(shù)獲取不到原因:
瀏覽器會(huì)將表單數(shù)據(jù)封裝為字符串,如controller=message&method=search,然后直接附在表單的 action URL 之后。這兩者之間用問(wèn)號(hào)(?)進(jìn)行分隔。如果GET請(qǐng)求的表單action屬性中已經(jīng)包含參數(shù),瀏覽器會(huì)直接將其過(guò)濾掉,再附加form表單數(shù)據(jù)。
因此,GET請(qǐng)求方式的表單的action屬性中不能附帶任何參數(shù),如果需要附加額外的參數(shù),可以采用如下方式:
1、采用POST請(qǐng)求方式,在form中增加屬性method="post"即可。
2、如果仍然想使用GET請(qǐng)求方式,可以在form表單中添加相應(yīng)的隱藏文本域
添加回答
舉報(bào)