相关资料记录
各种链接,工作才感觉时间不够用。
一、 MVC框架
二、 Entity Framework框架
三、 Linq
四、 IoC框架
五、 其他
部分内容记录
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中使用,在方法或者类前加上就可以了