• 初写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前面加上对应的服务即可:



    行舟逆水~


          

  • 相关阅读:
    简单计算器--hdu1237(栈的运用)
    Bone Collector
    Red and Black---hdu1312(dfs)
    RTMP规范简单分析
    FFMPEG中最关键的结构体之间的关系
    面向对象与形而上学
    洛谷 P2913 [USACO08OCT]车轮旋转Wheel Rotation
    洛谷 P1889 士兵站队
    洛谷 P1885 Moo
    洛谷 P1683 入门
  • 原文地址:https://www.cnblogs.com/lyr1213/p/6283452.html
Copyright © 2020-2023  润新知