研究了3天的WebApi,准备用于实际项目中,发现WebApi不支持TryUpdateModelAsync
是真的不支持吗,试了好久都不行。、
难道更新实体的时候,要我手动一个一个赋值?那样太幸苦了。

解决方案 »

  1.   

    请先理解清楚什么是webapi
      

  2.   

    webapi是数据接口,后台数据服务,没有页面服务,也就没有页面这个东西,也就没有PageModel,没有PageModel,  那么TryUpdateModelAsync从何而来,又到什么地方去?虽然很多人喜欢把webapi和mvc 的页面混合在一起做成一个项目,但概念本身是清晰的,只是有些人没有理解清楚的而已
      

  3.   

    是的,你把asp.net mvc和 webapi搞混了。
    他们继承的基类也不同啊,一个是apiController,一个是 Controller
      

  4.   

    实现IValueProvider接口,读出前端传过来的数据就可以了
    if (await this.TryUpdateModelAsync<TModel>(data, string.Empty, 
    JsonValueProviderFactory.GetValueProvider(this)))
     {
            await db.SaveChangesAsync();
    }
      

  5.   

    实体赋值不想一个个敲,反射不行?automapping之类的不行?
      

  6.   


    不用一个个敲,前端序列化成json字符串传给后端,后端整理到ValueProvider传给TryUpdateModelAsync方法就可以了