zoukankan      html  css  js  c++  java
  • 【C#及Asp.Net】学习相关记录

    相关资料记录

    各种链接,工作才感觉时间不够用。

    一、 MVC框架

    Microsoft官方MVC5文档

    Asp.Net MVC教程 博客

    .Net的路由配置

    MVC-Ajax-Json

    MVC-View数据传输

    WebForm-MVC混用

    获取当前项目的域名端口等

    二、 Entity Framework框架

    EF-MVC-增删改查

    EF基础

    EF-SQL

    EF-CRUD-事务

    EF介绍

    DBFirst-更新生成edmx模型

    EF生成实体模型循环引用,Json序列化失败问题

    三、 Linq

    所谓的30分钟学会Linq教程

    Linq to Object入门

    查询字符串拼接

    四、 IoC框架

    IOC框架Ninject

    ASP.NET MVC中Autofac实现的自动注入模式

    五、 其他

    Bootstrap-table-.Net

    部分内容记录

    C#基本语法相关

    号及??运算符 ?可以将基础数据类型定义为可空类型,例如:int? a = null,即a可以赋值为任意32位范围内整数及null值 ??当运算符前操作数为null时,取运算符后的操作数,例如:

             double? num1 = null;
             double? num2 = 3.14157;
             double num3;
             num3 = num1 ?? 5.34;     //5.34
             num3 = num2 ?? 5.34;     //3.14157
    

    这两个运算符在网站前端与后端数据交互时应该有一定作用

    Lambda表达式

    x => x * x;

    Lambda 表达式是一种可用于创建 委托表达式目录树 类型的 匿名函数

    左边的x是参数,右边的x*x是函数体及返回值

    Web

    Asp.Net的后端数据接收

    1. WebApi中

    ApiController中,方法接收请求体内Json数据时,可以使用[FromBody]标注参数,类似SpringMVC中的@RequestBody,只可以标注一个参数(基本变量或者对象),方法结束时返回直接返回结果对象,例如:

    public void JsonRequest([FromBody]string msg)
    {
                // ...
                return msg;
    }
    

    2. MVC中

    Controller中,接收Json数据,直接按照参数名key-value传入,可以使用对象作为参数,MVC会自动完成映射,如下:

    using MVC5Test.Models;
    using System.Web.Mvc;
    
    namespace MVC5Test.Controllers
    {
        [RoutePrefix("test")]
        public class TestController : Controller
        {
            [HttpPost]
            [Route("inputObject")]
            public JsonResult inputString(InputObject inputObject)
            {
                System.Diagnostics.Debug.WriteLine(inputObject.inputString);    // Web项目中控制台输出
                return Json(new {result = true});
            }
    
            [HttpPost]
            [Route("inputString")]
            public JsonResult inputString(string inputString)
            {
                if (inputString != null || !"".Equals(inputString))
                {
                    System.Diagnostics.Debug.WriteLine(inputString);
                    return Json(new InputStringResponseModel(inputString));
                }
                System.Diagnostics.Debug.WriteLine("未接收到数据");
                return Json("null");
            }
        }
    }
    

    3. 其他数据接收方式

    似乎可以使用Request["arg"]或者public method(FromCollection form){}等等,来接收数据。

    控制台打印

    Web项目中,控制台打印不能用Console.Write();之类的,使用System.Diagnostics.Debug.WriteLine();代替,不过最好还是要考虑使用日志来记录。

    路由配置

    使用[RoutePrefix("")] [Route("")]特性(Attribute),需要路由设置如下:

        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                // 忽略axd的路由,必要
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                // 避免aspx页面的请求传递给控制器,WebForm加入MVC时候的配置
                // routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
                // routes.MapPageRoute("Home", "", "~/Default.aspx");    // 指定路径路由
    
                routes.MapMvcAttributeRoutes();    // 启用[Route()]特性,一定要放在在下面的那种前面
    
                routes.MapRoute(    // 自定义路由
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    

    Controller中使用,在方法或者类前加上就可以了

  • 相关阅读:
    Matrix Power Series
    The Noisy Party(BUPT)
    cony
    又见Fibonacci数列
    回文字符串
    街区最短路径问题
    点的变换
    可恶的麦兜(北邮)
    Travel
    Swing实现Java代码编辑器实现关键词高亮显示
  • 原文地址:https://www.cnblogs.com/Locked-J/p/7366376.html
Copyright © 2011-2022 走看看