最近悟出來一個道理,在這兒分享給大家:學歷代表你的過去,能力代表你的現在,學習代表你的將來。
十年河東十年河西,莫欺少年窮。
學無止境,精益求精
小弟之前做過三月的MVC,后來又一直webForm開發,再后來,也就是現在做WPF,最近隨着項目進入尾聲,也就慢慢清閑了下來,清閑的時間甚是無聊,索性隨便學學,於是乎:前面給大家貢獻了C# web api 返回類型設置為json的兩種方法、解決webApi<Message>An error has occurred.</Message>不能寫多個Get方法的問題、C# WebApi傳參之Get請求-AJAX、C# WebApi傳參之Post請求-AJAX等博客,昨天來到公司還是啥事沒有,閑的蛋疼的我,沒事找事,就在網絡上翻MVC相關知識,再后來,通過QQ,向我鄭州的女性朋友(~_~)索要MVC資料,她給我提供的是PDF格式MVC資料,本人一向討厭PDF文件,所以就沒接收。於是乎,自己就開始瞎琢磨,開始了自己的MVC自學之旅。
本篇介紹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