我在C#中创建了一个简单的.NET后端移动天蓝色服务。我启动并运行了移动服务(它目前所做的一切都是在一张桌子上使用普通的CRUD)。我遇到的问题是PATCH / UPDATE不能像它说的那样做。我可以做我尝试过的所有其他事情,SELECT,INSERT,DELETE,但我一直无法更新数据。
当我调试调用UpdateAsync的代码块时,patch.GetEntity().....总是有值NULL或清零或第一天的日期时间,就像它没有传递属性一样我试图更新的价值。我唯一的价值就是正确的身份证。下面我试图删除我的一些代码,我使用了Azure网站上的前几个教程中的一些内容。
我有一个数据对象:
public class AdminLookupDATA: EntityData
{
public string description { get; set; }
public int lookuptype { get; set; }
public int priority { get; set; }
public bool inactive { get; set; }
public DateTime createdate { get; set; }
public DateTime editdate { get; set; }
}
我有一个DTO:
public class AdminLookupDTO
{
public string id { get; set; }
public string description { get; set; }
public int lookuptype { get; set; }
public int priority { get; set; }
public bool inactive { get; set; }
public DateTime createdate { get; set; }
public DateTime editdate { get; set; }
}
我有一个模特:
public class AdminLookupModel
{
public string Id { get; set; }
public string description { get; set; }
public int lookuptype { get; set; }
public int priority { get; set; }
public bool inactive { get; set; }
public DateTime createdate { get; set; }
public DateTime editdate { get; set; }
}
我的控制器内的我的补丁:
public Task<AdminLookupDATA> PatchAdminLookupDATA(string id, Delta<AdminLookupDATA> patch)
{
return UpdateAsync(id, patch);
}
另外,如果我尝试直接从浏览器中运行PATCH功能,我会遇到同样的问题。试试看#34;部分,所以我在服务项目本身配置错误。任何建议都将不胜感激。
谢谢, 罗布
答案 0 :(得分:0)
您的商标名称必须以大写字母开头。
否则按照此处的说明配置CamelCasePropertyNamesContractResolver:
http://odetocode.com/blogs/scott/archive/2013/03/25/asp-net-webapi-tip-3-camelcasing-json.aspx
代码段
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Formatting = Formatting.Indented;
settings.ContractResolver = new CamelCasePropertyNamesContractResolver();