初寫C#的小總結

雖然大學學過不少計算機語言,可是如今工做是前端,一個剛入行的前端菜鳥,以前對於後臺徹底零接觸,可是最近有個項目,我也是第一次真正接觸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前面加上對應的服務便可:
行舟逆水~
相關文章
相關標籤/搜索