C# MVC 實現登入的5種方式
最近悟出來一個道理,在這兒分享給大家:學歷代表你的過去,能力代表你的現在,學習代表你的將來。
十年河東十年河西,莫欺少年窮。
學無止境,精益求精
小弟之前做過三月的MVC,後來又一直webForm開發,再後來,也就是現在做WPF,最近隨著專案進入尾聲,也就慢慢清閒了下來,清閒的時間甚是無聊,索性隨便學學,於是乎:前面給大家貢獻了C# web api 返回型別設定為json的兩種方法、解決webApi<Message>An error has occurred.</Message>不能寫多個Get方法的問題、C# WebApi傳參之Get請求-AJAX
本篇介紹MVC實現登入的五種方式,如下:
1、通過MVC Form 表單請求實現登入
2、通過AJAX GET 請求MVC Controller 實現登入
3、通過AJAX POST 請求MVC Controller 實現登入
4、通過AJAX GET 請求webAPI Controller 實現登入
5、通過AJAX POST 請求webAPI Controller 實現登入
GO
一、MVC Form 表單請求
既然是表單請求,就必須為咱們的View新增一個Form,本文中我們採用傳統的Form格式,至於Razor中HtmlHelper提供的Form,本文不作探討,有興趣的小虎斑可參考上篇部落格:C# MVC提交表單的四種方式(轉)
示例程式碼如下:
很簡單,所需注意的地方,已經標出,譬如:Form 的action指向對應Controller的Logins方法、既然是Form 表單提交,有必要為<input>標籤新增相應的Name名稱、最後表單請求必須用到Submit按鈕
SO,我們的前端設計就完成了
後端程式碼則是更簡單啦,如下:
/// <summary> /// 簡單示例登入-MVC 表單提交、AJAX GET請求、AJAX POST請求均可用此方法 /// </summary> /// <param name="UserName">賬戶</param> /// <param name="UserPwd">密碼</param> /// <returns></returns> public int Logins(string UserName, string UserPwd) { if (UserName == "admin" && UserPwd == "admin") { return 200;//登入成功--RedirectToAction("Index"); } return 0;//登入失敗 }
二、AJAX GET 請求:
我們將View作如下修改:
去掉了FORM 和 Submit 按鈕,<a> 標籤執行一個JS函式:login()
login()方法如下:
後端程式碼和上邊的一樣,不作變化
在此解釋下紅線圈住的幾個引數及作用
URL:請求的方法,通過:Controller/Action來指定
Type:請求型別,Get和Post兩種
contentType:客戶端傳送至服務端的資料型別,上截圖中的請求方式為Get,因此:contentType應取值為:"application/json",如果是POST請求,contentType應取值為:"application/x-www-form-urlencoded"。注:如果是Get或Post 請求webApi介面,contentType應取值為:"application/json"。具體內容請參考本人部落格:C# WebApi傳參之Get請求-AJAX、C# WebApi傳參之Post請求-AJAX
dataType:服務端返回值型別,可以為XML HTML JSON Text 等
Data:Get或Post的資料,由服務端接收
後端程式碼和上述所貼程式碼一致。
三、AJAx POST 請求
VIew檢視和GET請求一致,不作變化,唯獨變化的就是contentType的取值和請求方式,程式碼如下:
4、AJAX GET請求webAPI實現登入 大家可參考本人部落格:C# WebApi傳參之Get請求-AJAX
5、AJAX POST請求webAPI實現登入 大家可參考本人部落格:C# WebApi傳參之Post請求-AJAX