.NET FrameWork 转 .NET Core遇到的问题

声明: 此处笔记并不通用,供个人参考

一、使用ConfigurationHelper时

ConfigurationHelper.AppSettings(“key”,false)
前置条件:
1、添加 DotNet.Utilities;
2、添加 webConfig中添加
3、引用 Framework.Apollo.Client

二、类库转换

System.Web.Mvc ==> Microsoft.AspNetCore.Mvc(.NET Core)

三、js的引用(不属于转换时的问题)

客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷性缓存的作用。大家可能有时候发现修改了样式或者js,刷新的时候不变,就是客户端缓存了css或者js文件,因此加上参数还是有好处的!
缓存一小时

<script src="~/js/DataCenter/DataReport/DataReport.js?v=@DateTime.Now.ToString("yyyyMMddHH")"></script>

四、控制器返回给前端的json首字母大小问题

方法一 全局修改

//注册mvc服务
services.AddMvc()
      //全局配置Json序列化处理
      .AddJsonOptions(p=>{
      p.SerializerSettings.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;//指定序列化时间格式模式
      p.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";//指定时间格式化
      p.SerializerSettings.ContractResolver = new DefaultContractResolver();//取消Json序列化的第一个字母
      p.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;//忽略循环引用
});

方法二 局部修改

	JsonSerializerSettings settings = new JsonSerializerSettings();
	//EF Core中默认为驼峰样式序列化处理key
	//settings.ContractResolver = new CamelCasePropertyNamesContractResolver()
	//使用默认方式,不更改元数据的key的大小写
	settings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver();
    return Json(result,settings);

五、URL不区分大小写

六、控制器中

	[Route("api/[controller]/[action]")]
	[ApiController] //去掉后不报一个错,是http方法只允许一个实体参数

七、查询问题

.NET FrameWork MVC中 Post过来的参数有多个实体类,可以接收
.NET Core Post过来的参数有多个实体类,无法接收

八、关键代码

	var reader = new StreamReader(Request.Body);
	var contentFromBody = reader.ReadToEnd();
	dynamic dynamicStr = JsonConvert.DeserializeObject(contentFromBody);//get 数据
	var te1 = dynamicStr["sort"].Value;
	var te11 = dynamicStr["Depart_Leader"].Value;
	var te12 = dynamicStr["Depart_Code"].Value;
	Request.Body.Position = 0;
	var reader2 = new StreamReader(Request.Body);
	var contentFromBody2 = reader2.ReadToEnd();
	PageModel entity = JsonConvert.DeserializeObject<PageModel>(contentFromBody);

九、区别

apiParams = "dateFrom={0}&amp;dateTo={1}&amp;pcode={2}&amp;pgcode={3}&amp;gcode={4}&amp;pageIndex={5}&amp;pageSize={6}&amp;gname={7}&amp;pgname={8}&amp;pname={9}&amp;depCode={10}&amp;depLeader={11}&amp;gpLeader={12}&amp;sort={13}&amp;direction={14}&amp;devname={15}"

传统的可以 string.Format(apiParams,XXXX) ==> dateFrom={0}&dateTo={1}&pcode={2}&pgcode={3}&gcode={4}&pageIndex={5}&pageSize={6}&gname={7}&pgname={8}&pname={9}&depCode={10}&depLeader={11}&gpLeader={12}&sort={13}&direction={14}&devname={15}

.Net Core string.Format(apiParams,XXXX) ==> 转换不成& 必须修改apiParams 的参数

十、时间

System.Web.Mvc中 Json( )时间是时间戳的格式
Microsoft.AspNetCore.Mvc 中 Json() 序列化出来的是世界标准时间

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值