雖然大學學過不少計算機語言,可是如今工做是前端,一個剛入行的前端菜鳥,以前對於後臺徹底零接觸,可是最近有個項目,我也是第一次真正接觸C#,中間遇到了一些小問題,就作個總結記錄下,真的是超級簡單的小知識點。。。前端
項目工具:Visual Studio 2015ajax
1、ASP.NET MVC模式的簡單理解數據庫
模型(Model)、控制器(Controller)、視圖(View)組成MVC模式,模型和控制器是一一對應的。json
模型 定義數據結構,負責與數據庫溝通,從數據庫讀取數據,將數據寫入數據庫,總之,和「數據」有關的任務,都要在Model 裏完成定義。數組
控制器 從模型中取得數據,而後用於寫項目功能,而且,一個系統有不少頁面(View),而控制器就決定是哪一個頁面顯示給用戶。服務器
視圖 輸出:從控制器取得數據,顯示在用戶界面上,將控制器傳送的數據顯示於界面,數據是來自模型的定義;數據結構
輸入:將數據送回控制器,決定數據應該送到哪個Controller 的Action 中,決定數據傳送的方式,例如,GET、POST、XML HTTP Request (XHR) 。 要顯示在網頁上的邏輯都是View負責的。async
2、服務引用工具
一、添加服務引用測試
例,WCF設計文檔中,附件模塊的服務是:
在VS 中,Service References上右鍵,「添加服務引用」:
按照文檔中服務地址的格式寫入地址,點擊「轉到」,若是正確,下面會提示找到了一個服務,而後寫「命名空間」也就是服務的名稱,最後點擊「肯定」便可。
二、配置服務引用
有的時候,打開項目,須要修改服務引用:
例,地址:「http:localhost:8880/device/datatypeService.svc」,須要將localhost改爲本地測試服務器地址,端口號不用改。
三、更新服務引用
當服務有更改的時候,就得更新服務引用,在對應服務上右鍵更新便可。
3、控制器:::ActionResult和JsonResult
ActionResult ——下行(從服務器取出來的數據)
JsonResult——上行(向服務器添加東西)
4、類型轉換
一、string->Guid
eg: Guid.Parse(req.Id) // Id 是string類型
二、Guid->string
eg: rese.Guid.ToString() // Guid 是 Guid類型
三、int->string
eg: i.ToString() // i 是int類型
四、string->int
eg: int.Parse(s)
或者
int.TryParse(s, out i) // s 是string類型,i 是int類型
五、DateTime->string
eg: dt.ToString("yyyy-MM-dd HH:mm:ss") // dt 是DateTime類型,轉換爲括號中的時間格式
六、string->DateTime
eg: Convert.ToDateTime(string) // string格式有要求,必須是yyyy-MM-dd hh:mm:ss
或者
DateTime.ParseExact() :
string dateString = "20110526";
DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture);
[OR] DateTime dt = DateTime.ParseExact(dateString, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
5、數組用Length , 集合用 Count
項目中有個用戶組,一個班級或者一個院系就是一個組,班級人數 就是 組成員數。
foreach (var rese in reses) { var t = new Classes(); t.Guid = rese.Guid; t.Name = rese.Name; t.Type = rese.Type; t.CreateDate = rese.CreateDate; // 班級人數 = 組成員數 var r = client.GetMemberList(new GetMemberListReq() { PageIndex = 1, PageSize = 200, GroupGuid=rese.Guid }); t.Num = r.Length; ret.Add(t); }
上面的 GetMemberList 得到的是一個數組,要用Length來取得它的長度,這個卻是跟js同樣。
6、生成Guid
var t = Guid.NewGuid();
7、頁面中好比「添加」、「刪除」等功能的實現
頁面和後臺交互用Ajax調用控制器中JsonResult:::
function OnDelete() { try { $.ajax({ type: "POST", url: "/UserGroup/Classes/DoDelete", data: { Guid: classes_Id }, dataType: "json", async: false, success: function (e) { window.location.reload(); }, error: function (e) { alert("error:" + e); } }); } catch (e) { alert("error:" + e); } }
一、Url 的書寫形式是「/域/控制器/JsonResult名(相應的操做)」
二、data 傳給接口的數據字段,要與控制器中"JsonResult名"中的模型中的字段一致,說的有點亂,是這樣:
public JsonResult DoDelete(DeleteReq req) { using (var client = new GroupServiceClient()) { var res = client.Delete(new DeleteGroupReq() { Guid = req.Guid }); HttpContext.Response.StatusCode = res.status; } return Json(""); } public class DeleteReq { public Guid Guid { get; set; } }
8、 重名
在寫控制器的時候,本身定義的模型與用戶組服務中的AddMemberReq重複了:
這是我寫的時候沒發現,疏忽了,可是收穫瞭解決問題的方法,
在AddMemberReq前面加上對應的服務便可:
行舟逆水~