webform 轉 MVC 飛一般的感覺

2022-01-12 16:41:55 字數 2173 閱讀 9759

前言:

正文:廢話不多說,直接說工作中經常用到的地方

1.建立頁面

webform通過建立.aspx檔案來編寫前端,.aspx.cs來編寫服務端**,mvc通過建立view來編寫前端,controller裡的function來實現服務端(注意:乙個控制器裡面有多個function,可以控制多個view)

比較:mvc直接貼入前端工程師的**到view裡面即可,webform需要去掉html,只貼入form裡面的內容,如果檔案變更路徑,則比較麻煩,前後端都需要修改,mvc只需把對應的function移動到不同控制器,view移動到對應視**件夾下即可

2.提交表單

webform根據指action選擇提交的路徑(預設當前頁面),mvc通過ajax.beginform(有多種提交方法,比如:$.post,注意要引用jquery.unobtrusive-ajax.js,這個是新手容易忽略的地方)提交,一般我喜歡使用ajax提交,再根據返回的結果進行頁面跳轉等操作

@using (ajax.beginform("

login

", new , new ajaxoptions() ))

對應的登入**

1

//登入前js驗證

2function validatelog()36

7//登入**函式

8function tips(data) else

1317 }

比較:webform提交表單,後台會走一系列事件(比如:使用者希望提交的資訊依舊儲存,可以表單的自動記憶),或者是ajax提交,而mvc直接提交到指定的function即可,更加的方便簡潔(可以去路由裡面設定對應引數,預設/id,如果不設定也可以?id=1&name="11"的方式進行傳參)

個人看法:mvc的控制器,更像乙個公共的介面,可以返回view,分部檢視,也可以返回各種指定的資料型別,使用起來更加的簡單,沒有webform各種事件的困擾,更加的清晰

3.razor語法與嵌入式語法

webform通過<%%> <%:%> <%=%> 可以在前端頁面嵌入後台邏輯**,用起來方便,但是這是極不友好的,如果頁面複雜了,後期維護起來非常吃力,特別是頁面結構,樣式表修改,mvc通過@ @{}可以在view呼叫控制器裡儲存的值,razor對html有更好的支援,它可以跟html進行混寫,**更加的清晰

1

<

div

id="examination"

class

="test_bg"

>

2@);

6for (int i = list_exam.count - 1; i >= 0; i--)733

}3435div

>

個人看法:盡量不要在view寫邏輯(if,switch),view裡面只填充資料

4.模板頁,使用者控制項,分部頁

它可以做下面這些事

4.1.模板頁功能

此功能非常簡單,建立乙個分部頁,將html**貼入進去就可以了,在需要呼叫的地方,可以直接呼叫

1  @renderpage("~/views/control/_header.cshtml")

比較:更加的清晰簡單

4.2.ajax區域性重新整理

1 $('#list_note').load('/control/note/@m_lession.id');

1

@25 }

4.3.隱藏頁的懶載入

這個根4.2是一樣的,比如tablepage,在webform中通常會把子頁內容全部載入出來,然後使用css將其它隱藏,然後通過js來控制它的顯示隱藏,mvc可以通重載入分部頁來實現,在點選某個子頁的時候,先通過js判斷是否有載入內容,如果沒有載入,再通過load載入分部頁,對於複雜頁面特別有用,頁面開啟速度明顯提公升

4.4.分工協作

這裡說的分工協作,並不是分層那種,只是單純的view分工

個人看法:view更像一張,裡面的分部頁相當於每個圖層,複雜頁面,可以先拆分成多個分部頁,然後分配給開發,mvc可以非常優化的支援它,我們只需要再分部頁的控制器裡定義好需要的引數,在view裡填充資料,返回分部頁即可,主頁可以很好的呼叫它

WebForm 一般處理程式 Ajax聊天

傳送 span input type button id button1 value 傳送 span form body html ashx 一般處理程式 生成 隨機名字 using system using system.collections.generic using system.linq ...

apt fast 飛一般的apt get

使用以下ppa去安裝apt fast。apt fast開發者說 一些發行版,如pclinux已經在他們預設的倉庫中包括了apt fast 我希望它將來也包含在ubuntu debian的預設倉庫中。新增apt fast的ppa,在終端中輸入以下命令。sudo add apt repository p...

pragma的一般用法

pragma是乙個c語言中的預處理指令,它的作用是設定編譯器的狀態或者是指示編譯器完成一些特定的動作。依據定義,編譯指示是機器或作業系統專有的,且對於每個編譯器都是不同的。其格式一般為 pragma para 其中para 為引數,下面來看一些常用的引數。2 另乙個使用得比較多的pragma引數是c...