【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中使用,在方法或者类前加上就可以了

posted on 2017-08-15 18:07  0Kelvin  阅读(256)  评论(0编辑  收藏  举报

导航