zoukankan      html  css  js  c++  java
  • 初写C#的小总结

    虽然大学学过很多计算机语言,但是现在工作是前端,一个刚入行的前端菜鸟,之前对于后台完全零接触,但是最近有个项目,我也是第一次真正接触C#,中间遇到了一些小问题,就做个总结记录下,真的是超级简单的小知识点。。。

    项目工具:Visual Studio  2015

    一、ASP.NET MVC模式的简单理解

    模型(Model)、控制器(Controller)、视图(View)组成MVC模式,模型和控制器是一一对应的。

    模型  定义数据结构,负责与数据库沟通,从数据库读取数据,将数据写入数据库,总之,和“数据”有关的任务,都要在Model 里完成定义。

    控制器  从模型中取得数据,然后用于写项目功能,并且,一个系统有很多页面(View),而控制器就决定是哪个页面显示给用户。

    视图  输出:从控制器取得数据,显示在用户界面上,将控制器传送的数据显示于界面,数据是来自模型的定义;

            输入:将数据送回控制器,决定数据应该送到哪一个Controller 的Action 中,决定数据传送的方式,例如,GET、POST、XML HTTP Request (XHR) 。  要显示在网页上的逻辑都是View负责的。

    二、服务引用

    1、添加服务引用

    例,WCF设计文档中,附件模块的服务是:

    在VS 中,Service References上右键,“添加服务引用”:

    按照文档中服务地址的格式写入地址,点击“转到”,如果正确,下面会提示找到了一个服务,然后写“命名空间”也就是服务的名称,最后点击“确定”即可。

    2、配置服务引用

    有的时候,打开项目,需要修改服务引用:

    例,地址:“http:localhost:8880/device/datatypeService.svc”,需要将localhost改成本地测试服务器地址,端口号不用改。

    3、更新服务引用

    当服务有更改的时候,就得更新服务引用,在对应服务上右键更新即可。

    三、控制器:::ActionResult和JsonResult

    ActionResult ——下行(从服务器取出来的数据)

    JsonResult——上行(向服务器添加东西)

    四、类型转换

    1、string->Guid

    eg:  Guid.Parse(req.Id)     // Id 是string类型

    2、Guid->string 

    eg: rese.Guid.ToString()       // Guid 是 Guid类型

    3、int->string

    eg:  i.ToString()      // i 是int类型

    4、string->int

    eg: int.Parse(s)    

          或者    

          int.TryParse(s, out i)               // s 是string类型,i 是int类型

    5、DateTime->string

    eg: dt.ToString("yyyy-MM-dd HH:mm:ss")     // dt 是DateTime类型,转换为括号中的时间格式

    6、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);

    五、数组用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一样。

    六、生成Guid

    var  t =  Guid.NewGuid();

    七、页面中比如“添加”、“删除”等功能的实现

    页面和后台交互用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);
            }
        }

    1、Url 的书写形式是“/域/控制器/JsonResult名(相应的操作)”

    2、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; }
            }
    八、 重名

    在写控制器的时候,自己定义的模型与用户组服务中的AddMemberReq重复了:

    这是我写的时候没发现,疏忽了,但是收获了解决问题的方法,
    在AddMemberReq前面加上对应的服务即可:



    行舟逆水~


          

  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/lyr1213/p/6283452.html
Copyright © 2011-2022 走看看