MVC VS常用技巧

2021-09-07 18:26:41 字數 3521 閱讀 1775

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

routes.maproute(

2 name: "

default",

3 url: "//"

,4 defaults: new

5 );

上述**中,maproute使用的是具名引數。

13,mvc的執行宣告週期

**路由比對-->執行controller與action-->執行view並回傳結果

routetable.routes.routeexistingfiles = true;

當**路由比對成功時,mvc預設交由mvchandler處理。

1,在asp.net mvc中,路由機制特別碉堡,直接對應於動作方法。沒有必要給每乙個動作方法新增檢視,當檢視返回view時,路由系統會自動尋找指定目錄下的檢視資源。

1

public

viewresult autoproperty()2"

, p.name));

6 }

如autoproperty時homecontroller中的動作方法,並沒有指定檢視,但是在返回檢視的時候,會自動在views\home下查詢指定的檢視資源。

url為~/home/autoproperty。同樣驗證了url與動作方法的一致性。

2,@html

@html.displaynamefor(model => model.email)顯示屬性名稱,在定義屬性時可以設定displayname屬性來修改顯示的名稱。

如:

1         [displayname("

電子郵件位址")]

2public

string email

這樣,@~處將不顯示「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="

email

">電子郵件位址

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裡面,若每行文字...