1,在vs2010中,選中指定的**段,可以拖拽到工具箱中,形成標籤,以後還想書寫類似的**,雙擊滑鼠即可。
2,在vs2012中,可以在注釋上標註//todo:我是注釋
這樣,注釋就會出現在任務列表中,一些關鍵常用的方法/字段/關注點,通過這種方式快速定位。如圖:
3,在vs2012中是不支援mvc1.0和mvc2.0的,如果要開啟低版本mvc專案的話,必須使用vs2010
4,_viewstart.cshtml文件會在所有其他所有檢視(view)執行之前載入。
發現使用布局頁的檢視沒有完整的html結構,是因為類似的檢視都作為一部分被裝載到布局頁中,由_viewstart.cshtml文件指定,預設為_layout.cshtml。
5,可以在檢視頁面的頭部定義viewbag的臨時變數,而不必是在controller的action方法中定義,如圖:
6,在瀏覽網頁時,如果只是指定controller,而不指定action,而控制器和動作方法均是必須的路由引數,這時將去registerroutes()方法中取預設的action值,如圖:
上圖中預設的方法為index,也就是說當我們輸入.../example的時候,會自動路由為.../example/index
7,如果在view中定義了@model模型宣告,那麼通過controller傳進view的模型型別必須與view中所宣告的型別相容,否則將產生異常,如圖:
8,在view文件(也就是cshtml中),標籤中的標籤指標題,如圖:
9,如下**:
@html.actionlink("create new", "create")
建立鏈結,因為沒有指定鏈結的控制器名稱,所以鏈結到當前控制器的create動作方法,顯示的文字為「create new"。
http get負責顯示編輯的窗體,http post負責實際更新資料庫裡的屬性。
11,雜:
@html.hiddenfor(model => model.id) 生成html窗體的隱藏域
html注釋符號:
在asp.net mvc中不建議使用request物件和response物件
不要在檢視中撰寫過多的程式邏輯,實現「關注點分離」
1、比對瀏覽器傳過來的http請求,對應到適當的控制器和action進行處理;
2、決定mvc輸出什麼樣的響應給瀏覽器;
12,**路由
比如:單擊「主頁」鏈結,瀏覽器將url封包,並傳送http要求到伺服器上,iis接收到這個http封包,轉給**路由模組負責將http請求交由那個httphandler處理,對於mvc來說,自然是轉交給mvchandler處理,這才會進入mvc的執行宣告週期。
**中的routes是乙個公開的靜態變數,用來儲存所有**路由的規則集合,為routecollection型別的變數。
routes.ignoreroute(".axd/");
**中,表示不要通過**路由處理,即如果從瀏覽器傳遞過來的**,匹配該規則,將由iis的其他http模組處理,將不會進入asp.met mvc的生命週期。
url: "//"
**中url樣式包含三個路由引數,分別是controller/action/id,注意該url樣式不能以『/'開頭。
defaults: new
預設值。當對比不到http請求的**時,會嘗試帶入**中的預設值。
當接收到http請求時,將從上而下逐條比對,直到找到符合的**格式。
注意id不算在**路由之中,屬於querystring的部分。
1上述**中,maproute使用的是具名引數。routes.maproute(
2 name: "
default",
3 url: "//"
,4 defaults: new
5 );
13,mvc的執行宣告週期
**路由比對-->執行controller與action-->執行view並回傳結果
routetable.routes.routeexistingfiles = true;
當**路由比對成功時,mvc預設交由mvchandler處理。
1,在asp.net mvc中,路由機制特別碉堡,直接對應於動作方法。沒有必要給每乙個動作方法新增檢視,當檢視返回view時,路由系統會自動尋找指定目錄下的檢視資源。
1如autoproperty時homecontroller中的動作方法,並沒有指定檢視,但是在返回檢視的時候,會自動在views\home下查詢指定的檢視資源。public
viewresult autoproperty()2"
, p.name));
6 }
url為~/home/autoproperty。同樣驗證了url與動作方法的一致性。
2,@html
@html.displaynamefor(model => model.email)顯示屬性名稱,在定義屬性時可以設定displayname屬性來修改顯示的名稱。
如:
1 [displayname("這樣,@~處將不顯示「email」,而是顯示「電子郵件位址」。電子郵件位址")]
2public
string email
@html.displayfor(modelitem => item.name),顯示的是特定item的name值,如:sharpl
@html.actionlink("edit", "edit", new ) ,actionlink用來輸出超連結,第乙個引數指超連結的顯示文字,第二個引數指action,第三個引數為路由引數。
@html.labelfor(model => model.name),特定欄位的顯示名稱,對於email來說任然會顯示「電子郵件位址」,所以和displaynamefor類似。
二者存在細微的差異,在輸出的html中,labelfor輸出的內容包含標籤,而displayfor只會輸出屬性的顯示名稱。如圖:
1出處:class="
editor-label
">
2for="
">電子郵件位址
3
gridview常用技巧
1.為按鈕增加確認對話方塊。在rowdatabound事件中,為按鈕增加 onclick 事件屬性 protected void gvversionlist rowdatabound object sender,gridviewroweventargs e protected void gridvi...
Linux Vi常用技巧
vi常用技巧 vi命令可以說是unix linux世界裡最常用的編輯檔案的命令了,但是因為它的命令集眾多,很多人都不習慣使用它,其實您只需要掌握基本命令,然後加以靈活運用,就會發現它的優勢,並會逐漸喜歡使用這種方法。本文旨在介紹vi的一些最常用命令和高階應用技巧。一 基本命令介紹 1 游標命令 k ...
CSS常用技巧
css 使用技巧 1.可以避開css的盒模型考慮問題,指定margin和padding的值的時候在分別另外指定,後面的只將覆蓋前面的值。2.img 可以避免帶鏈結的邊緣出現藍色邊框,將以塊級元素顯示。3 nowrap 有時候我們要在首頁動態列印一列十條文章,要放在乙個css容器div裡面,若每行文字...