随手记

 

 .net core

依赖注入  

是一种设计模式 ,在类和其依赖项之间实现控制反转。

 


 

.net core 学习路线  https://github.com/MoienTajik/AspNetCore-Developer-Roadmap/blob/master/ReadMe.zh-Hans.md

 


 

HTTP和HTTPS协议

参考:https://zhuanlan.zhihu.com/p/72616216

计算机之间为了通信达成的一种规则。

HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。

    基于TCP/IP通信协议来传递数据的协议

HTTPS (HyperText Transfer Protocol over Secure Socket Layer)  HTTP+SSL/TLS

SSL  安全套接字

URI和URL的区别

    • URI:Uniform Resource Identifier 统一资源标识符
    • URL:Uniform Resource Location 统一资源定位符

 url 长度有限制,因而get 提交数据大小也有限制

 

 

 


 

 

域名系统(英文:Domain Name System,缩写:DNS)  作为将域名和IP地址相互映射的分布式数据库, IP地址记起来不那么方便,DNS应运而生。

 

 

动软代码生成器: bilibili 视频教程  https://www.bilibili.com/video/BV127411m7m9?p=2

 

 

MVC

 

 

 

 var userInfo =@Html.Raw(Json.Encode(ViewBag.memberInfo));

 


 

 

 

//写在Controller继承类里,用来判断用户是否登录

 

   /// <summary>
        ///     权限验证
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void OnAuthorization(AuthorizationContext filterContext) {
            //判断是否跳过授权过滤器
            if (filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true)
                || filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true))
            {
                return;
            }
           
        }

 

 

 

form 表单值传递至后台

 

前台代码:

 

<div>
        @using (Html.BeginForm())
        {
            <p>
                姓名:<input type="text" name="name" />
                <input type="submit" value="送出" />
            </p>
        }
        <form action="Home/Test" method="post">
            <p>
                ID:<input name="name" type="text" />
                <input type="submit" value="送出" />
            </p>
        </form>
    </div>
    <p>
        Your name :@ViewBag.Name
       Model :@Model
    </p>

 

后台:

 

public IActionResult Index(IFormCollection form)
        {
            ViewBag.Name = form["name"];
            ViewData.Model = form["name"];
            return View();
        }

 

IFormCollection  和Request 比较类似

 

 

 

 

 


 

 

 

传值: ViewData、 ViewBag 、TempData  

 

Model :   在view视图添加     @model IEnumerable<T> 

 

Tuple   .net Framework 4.0 提供  可读性不好,但是可以省下不少定制化ViewModel 类

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//在controller 判断是get还是post

 

   if (Request.HttpMethod.Equals("get", StringComparison.OrdinalIgnoreCase)) {
                return View();
            }

 

 

 

 

 

前端

 

 

 

时间:

 

new Date().toLocaleString()

 

 

 

 

 

 

递归组合算法    [电商]商品发布规格组合算法

 

 

 

 

 

 

var res = generateGroup([["红色", "蓝色"], ["X", "XL"], ["10m", "20m","33m"]]);
console.log("generateGroup",res)

//递归组合 function generateGroup(arr){ //判断二维数组长度是否大于1 //如果大于1则去递归组合,否则返回第0个数组 if(arr.length> 1){ //创建结果数组,用于保存结果 var result= new Array(); //第一个二维数组元素作为初始数组 var base= arr[0]; //删除二维数组第0个数组 arr.splice(0,1); //递归获取下一个数组 var next = generateGroup(arr); //遍历基数组 for(var i=0;i<base.length;i++){ //遍历递归获取的数组 for(var j=0;j<next.length;j++){ //组合结果放入结果数组 result.push(base[i]+","+next[j]); } } //返回结果数组 return result; }else{ //返回第0个数组元素 return arr[0]; } }

 

 

 

js发送get 、post请求     参考: https://www.cnblogs.com/Im-Victor/p/9405974.html

 

      var httpRequest = new XMLHttpRequest();//第一步:建立所需的对象
            httpRequest.open('GET', '/ProSpec/GetAllProSpecRules', true);//第二步:打开连接  将请求参数写在url中  ps:"./Ptest.php?name=test&nameone=testone"
            httpRequest.send();//第三步:发送请求  将请求参数写在URL中
       
              httpRequest.onreadystatechange = function () {
            //要加上这个判断,不然会访问3次 readyState三次访问的值分别为 2 3 4
            if (httpRequest.readyState == 4 && httpRequest.status == 200) {      vueAll.proSpecRuleList = httpRequest.responseText
          } };

 

 

 

 

 

 

 


 

 

 

未分类:

 

 

 

接受get传过来的参数

 

    function getUrlParam(k) {
        var regExp = new RegExp('([?]|&)' + k + '=([^&]*)(&|$)');
        var result = window.location.href.match(regExp);
        if (result) {
            return decodeURIComponent(result[2]);
        } else {
            return null;
        }
    }

 

 

 

 

 

 

 

Request Validation in ASP.NET  

 

https://docs.microsoft.com/en-us/previous-versions/aspnet/hh882339(v=vs.110)?redirectedfrom=MSDN

 

 

 

必填

 

lay-verify="required"

 

 

 

 

 


 

 

 

Enum 枚举 

 

 TaskStatus= (TaskStatusEnum)Enum.Parse(typeof(TaskStatusEnum), taskToken.GetTokenValue("status"))

 

 

 

 

 


 

 

 

controller 获取数据

 

 获取get 参数 Request.Query("")

 

获取表单数据  Request.Form()

 

Session数据    HttpContext.Session.SetString()

 

 

 

asp.net mvc 与asp.net core mvc 区别

 

asp.net 采用iis运行网站;

 

.net core 不需要iis即可运行

 

 

 

什么是mvc

 

M:model 模型  包含业务逻辑与业务数据

 

V:View  视图  呈现数据

 

C:Controller  控制器 接受请求

 

 

 

 

 

 

 

 

谁在使用 .net core 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

C# 实现十六进制Unicode编码字符串转换为汉字

 

 

 

操作符重载

 

public static ISpecification<T> operator &(ISpecification<T> first, ISpecification<T> second) {
              return new AndSpecification<T>(first,second);
          }

 

 

 

.NET Core CLI  command-line interface 

 

C#  ??  含义:如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。

 

构造函数内可对readonly 字段赋值

 

 

 

   if (Request.HttpMethod.Equals("get", StringComparison.OrdinalIgnoreCase)) {                return View();            }

 

posted @ 2020-12-18 14:13  超难微猫  阅读(154)  评论(0编辑  收藏  举报