最近公司框架升级到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. windows 定时任务 - 定时关机

    添加定时关机,刚好可以利用windows定时任务 [开始]->[控制面板]->[任务计划]->[添加任务计划] 1.找到 shutdown.exe 设置每天执行 2.设置晚上10点 ...

  2. druid sqlparser使用例子

    package com.alibaba.druid.bvt.sql.mysql; import java.util.List; import org.junit.Assert; import com. ...

  3. 【Count Complete Tree Nodes】cpp

    题目: Given a complete binary tree, count the number of nodes. Definition of a complete binary tree fr ...

  4. python中字符串是特殊的列表

    for x in range(20): print 'fizz'[x%3*4::]+'buzz'[x%5*4::]or x 这个是由 Jeff Atwood推广的一个编程练习叫FizzBuzz,问题如 ...

  5. nginx 快速查看配置文件的方法

    查看nginx实际调用的配置文件 1.查看nginx路径 ps aux|grep nginx root ?? S :43上午 :00.08 nginx: worker process root ?? ...

  6. ironic baremetal rescue process

    1.用户调用Nova的rescue函数 nova/virt/ironic/driver.py class IronicDriver(virt_driver.ComputeDriver): ...... ...

  7. ssh.sh_for_ubuntu1604

    #!/bin/bash sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config ...

  8. leetcode_day02

    任务二:删除排序数组中的重复项 原文链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 最开始的解决思路: ...

  9. Android自定义控件 -Canvas绘制折线图(实现动态报表效果)

    有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了很多插件,但是很多时候我们需要根据具体项目自定义这些图表,这一篇文章我们一起来看看如何在Android中使用Canvas ...

  10. 【Android】实验5 数独游戏界面设计-报告提交时间:2016.4.15