.NET FrameWork 转 .NET Core遇到的问题
程序员文章站
2022-03-09 21:43:45
...
声明: 此处笔记并不通用,供个人参考
一、使用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/[email protected]("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}&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}"
传统的可以 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() 序列化出来的是世界标准时间
上一篇: 修改linux文件权限命令:chmod
下一篇: 无线信号为何没能完全覆盖
推荐阅读
-
详细分析.NET Core 以及与 .NET Framework的关系(图)
-
asp.net core 2.0 webapi 使用 Autofac 进行依赖注入遇到的问题
-
记一次.net core调用SOAP接口遇到的问题
-
[转]ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction
-
简析.NET Core 以及与 .NET Framework的关系总结
-
.Net Core 使用 System.Drawing.Common 部署到CentOS上遇到的问题
-
.net core 的 Console 输出乱码问题
-
.net core ViewData显示标题中文乱码的问题
-
ASP.NET清空缓存时遇到的问题简析
-
ASP.NET清空缓存时遇到的问题简析