webApi之FromUri和FromBody区别

Posted jeely

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webApi之FromUri和FromBody区别相关的知识,希望对你有一定的参考价值。

ublic Link GetLink([FromUri] FileRequest fileRequest)
   
       if (ModelState.IsValid)
       
           var xml = WebConfigurationManager.AppSettings["appDiscoveryXml"];
           var wopiServer = WebConfigurationManager.AppSettings["appWopiServer"];
           bool updateEnabled = false;
           bool.TryParse(WebConfigurationManager.AppSettings["updateEnabled"], out updateEnabled);
           WopiAppHelper wopiHelper = new WopiAppHelper(HostingEnvironment.MapPath(xml), updateEnabled);
 
           var result = wopiHelper.GetDocumentLink(wopiServer + fileRequest.name);
 
           var rv = new Link
           
               Url = result
           ;
           return rv;
       
 
       throw new ApplicationException("Invalid ModelState");
   

 

  FileRequest类的定义

1
2
3
4
5
6
7
public class FileRequest
 
     public string name  getset;
 
     public string SelectedItemId  getset;
     public IEnumerable<SelectListItem> Items  getset;
 

  

 这里的FromUri强制从url中读取FileRequest 对象,也就是说

    当访问Http://localhost:80?name=eric&SelectedItemId=Guid.NewGuid()

   此处将自动转换Uri中的参数作为对象属性忽略form传递的数据

 

而使用FromBody将强制从FormData中读取数据

技术图片

而非URL中获取参数~

以上是关于webApi之FromUri和FromBody区别的主要内容,如果未能解决你的问题,请参考以下文章

同时使用 [FromUri] 和 [FromBody] 绑定复杂的 Web Api 方法参数

WebApi

为啥我们必须指定 FromBody 和 FromUri?

WebApi 中FromUri参数自动解析成实体的要求

WebAPI Modelbinding - [FromUri]没有处理Guids的枚举

webapi接收不到frombody实体类传入的数据