最近公司框架升级到DotNetCore了,但是在用post请求的时候,发现页面的post data后台并没有接收到数据,经过调查发现,netcore用法和之前的MVC5不一样,想要接收post里的data,就需要在写接口的入参增加个属性[FromBody]

#region 发布订单
/// <summary>
/// 发布订单
/// </summary>
/// <param name="_PrivateOrderPostBody">订单</param>
/// <returns></returns>
[HttpPost("CreateOrder")]
public IActionResult CreateOrder([FromBody] PrivateOrderPostBody _PrivateOrderPostBody)
{
LogService.ILOG(_PrivateOrderPostBody.PK_Farm_User_UserName, "农场用户", "农科院", "AccountController", "CreateOrder", "_PrivateOrderPostBody:" + _PrivateOrderPostBody, "开始");
string ErrorMsg = "";
int Code = ;
Response response = new Response();
var OrderId = OrderService.CreatePrivateOrder(_PrivateOrderPostBody,ref Code, ref ErrorMsg);
LogService.ILOG(_PrivateOrderPostBody.PK_Farm_User_UserName, "农场用户", "农科院", "AccountController", "CreateOrder", "_PrivateOrderPostBody:" + _PrivateOrderPostBody + ",Code:" + Code + ",ErrorMsg:" + ErrorMsg, "成功");
response.Code = Code;
response.Message = ErrorMsg;
response.Data = OrderId;
return new JsonResult(response);
}
#endregion

然后在swagger里看的结果就是

这样就可以正常接收post的参数了。

还是一个新的服务,正常是拷贝一个其他的项目过来,然后修改相应的名字即可。

理论上没问题,但是操作起来总会漏掉

比如这种情况,启动了swagger提示:

但是代码里明明有这个controller。

调查下吧,先想想给代码加个断点,跟一下,

结果就比较尴尬了,没进来。。。

因为这个是第二个执行的StartUp.cs,所以先试下第一个执行的Program.cs,加了断点能执行进去,这就比较尴尬了。

仔细一看,这两个的命名空间不一样

也就说改漏了一个。。。。

把Program那个命名空间也改成Flow就好了。也就是说这里的加载只是按照这个命名空间加载的,并不是那种调用关系。

今天自己犯了个比较二逼的错误。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

在service里注入了一个新的Repository,结果导致所有的接口都能启动,但是任何一个都是500,并不进入任何断点,特别神奇了。然后想想就把刚注入的拿掉吧,然后可以了,但是这个不得不引用啊。

结果再看遍代码,发现了,我注入的不是接口,而是实现。。。。。。

主要是这个也不报错,我就不知道怎么查了,也很自信的觉得自己不能写错。。。。

做个记录吧,真傻。

然后项目再次升级,更换数据库,用postgresql,结果是startup里的dbcontext修改了,但是T4生成的那个dbcontext忘了修改了,导致所有的repository全都使用了空的dbcontext,一样的500没有报错信息。还是尴尬。。。这个也要注意的,主要是没有报错信息,真的很烦的。

新起一个项目,然后需要根据数据库生成对应的Model和Repository,做法步骤是

//0.Nuget下載包
//.Net Core 将默认DI改为Autofac
//Install-Package Autofac.Configuration
//Install-Package Autofac.Extensions.DependencyInjection
//DBFirst开发步骤
//Microsoft.EntityFrameworkCore
//Microsoft.EntityFrameworkCore.Tools
//Microsoft.EntityFrameworkCore.Design
//Microsoft.EntityFrameworkCore.SqlServer
//Microsoft.EntityFrameworkCore.SqlServer.Design
//1.通过数据库将生成Model,调出【程序包管理控制台】,选择项目,输入以下命令 将数据库中所有表生成Model
//Scaffold-DbContext “Server=.; Database=AppsDBFarm;Persist Security Info=True;User ID = sa; password=123456;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
//命令解析:
//Scaffold-DbContext “数据库连接字符串” Microsoft.EntityFrameworkCore.SqlServer -OutputDir 输出的文件夹, 如无此参将生成到项目根目录
//如果只想生成某些表将使用Tables参数 如: -Tables(“table1”,”table2”,”table3”,”table4”)
//其他参数可输入 Scaffold-DbContext -? 查看帮助.
//T4生成,只需要改下tt文件,加个回车,然后保存即可。

DotNetCore 笔记的更多相关文章

  1. Docker笔记01-发布一个dotnetcore应用

    OS:Widows 10 IDE: VS2017 Docker:Docker Desktop for Windows Windows下安装Docker需要先启用Hyper-v 在Windows 容器的 ...

  2. DotNETCore 学习笔记 WebApi

    API Description Request body Response body GET /api/todo Get all to-do items None Array of to-do ite ...

  3. DotNETCore 学习笔记 MVC视图

    Razor Syntax Reference Implicit Razor expressions <p>@DateTime.Now</p> <p>@DateTim ...

  4. DotNETCore 学习笔记 宿主

    Hosting -------------------------------------------------------------------------- Setting up a Host ...

  5. DotNETCore 学习笔记 依赖注入和多环境

    Dependency Injection ------------------------------------------------------------------------ ASP.NE ...

  6. DotNETCore 学习笔记 配置

    Configuration var builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(); var config ...

  7. DotNETCore 学习笔记 日志

    Logging --------------------------------------------------------------------------------------- Impl ...

  8. DotNETCore 学习笔记 全球化和本地化

    Globalization and localization ********************************************************************* ...

  9. DotNETCore 学习笔记 异常处理

    Error Handling public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseIISP ...

随机推荐

  1. VSX-3 VSCT文件

    关于VSPackage中的VSCT,算是VSX开发中比较重要的一个成员. 我这里给出LearnVSXNow!系列文章关于VSCT的链接,除了#14有译文. #14 #18 #25 看完上面几篇文章,也 ...

  2. 《Cracking the Coding Interview》——第4章:树和图——题目2

    2014-03-19 03:32 题目:给定一个有向图,判断其中两点是否联通. 解法:DFS搜索解决,如果是无向图的话,就可以用并查集高效解决问题了. 代码: // 4.2 Write a progr ...

  3. Timer的schedule和scheduleAtFixedRate方法的区别解析

    在java中,Timer类主要用于定时性.周期性任务 的触发,这个类中有两个方法比较难理解,那就是schedule和scheduleAtFixedRate方法,在这里就用实例分析一下 (1)sched ...

  4. NOIP2018 集训(二)

    A题 神炎皇 问题描述 神炎皇乌利亚很喜欢数对,他想找到神奇的数对. 对于一个整数对 \((a,b)\) ,若满足 \(a+b\leq n\) 且 \(a+b\) 是 \(ab\) 的因子,则称 为神 ...

  5. ASP.net MVC入门及Razor语法

    一.MVC入门: 1.MVC简介 约定大于配置 2.MVC访问流程 csthml模板(razor模板)就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件. 二 ...

  6. 立体匹配之Census Transform

    1.立体匹配算法主要可分为两大类:基于局部约束和基于全局约束的立体匹配算法. (一)基于全局约束的立体匹配算法:在本质上属于优化算法,它是将立体匹配问题转化为寻找全局能量函数的最优化问题,其代表算法主 ...

  7. shell sort 排序大讨论

    转自http://roclinux.cn 本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. === [正文开始]有时候学 ...

  8. Spring 学习笔记(六)—— AOP的简单理解

    系统中的业务可以分为核心关注点和横切关注点. 核心关注点时业务处理的主要流程,而横切关注点是与核心业务无关但更为通用的业务. 各个横切关注点离散地穿插于核心业务之中,导致系统地每一个模块都与这些业务具 ...

  9. poj 3080 kmp求解多个字符串的最长公共字串,(数据小,有点小暴力 16ms)

    Blue Jeans Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14113   Accepted: 6260 Descr ...

  10. Linux运维文档之nginx

    NGINX安装配置1.检查并且安装依赖组件检查安装nginx的依赖性,nginx的模块需要第三方库的支持,检查是否安装下列库:zlib.zlib-devel.openssl.openssl-devel ...