首页 > 其他分享 >.Net [FromBody]与[FromForm]区别、各请求格式说明

.Net [FromBody]与[FromForm]区别、各请求格式说明

时间:2023-04-15 20:34:20浏览次数:48  
标签:form FromForm FromBody application json 格式 Net

[FromBody]与[FromForm]区别

1,FromBody:在Action方法传入参数后添加[frombody]属性,参数将以一个整体的josn对象的形式传递。

  代码示例:

        /// <summary>
        /// 发公告
        /// </summary>
        /// <param name="dateTime"></param>
        /// <returns></returns>
        [HttpPost, Route("SendAnnounce")]
        public IActionResult SendAnnounce([FromBody] Announce message)
        {
            var obj = Service.SendAnnounce(message).Result;
            return Json(Newtonsoft.Json.JsonConvert.SerializeObject(obj));
        }    

前端是js,ajax 调用直接传递json字符串就可以了。注意 Content-Type(内容类型)

 

contentType : 'application/json', // JSON数据格式  (data只能是json字符串)

$.ajax({
    url: actionUrl,
    type: 'POST',
    datType: 'JSON', // 返回值类型
    contentType: 'application/json', // 默认值: 'application/x-www-form-urlencoded'
    data: "{'id': " + 123 + '}', // json 字符串
    async: false,
    success: function () {}
})

 

2,FromForm:在Action方法传入参数后添加[FromForm]属性,参数将以表单【key:value对Array组】的形式提交。

注意,现在vue/angular 等框架使用from表单形式的少了

 [HttpPost("AddUserModel")]
 public User UserAddUserModel([FromForm]User users)
 {
     return users;
 }

 

js

<!--HTML-->
<form action="" method="post" id="test_form">
    <input type="text" name="username" value="" />
    <input type="password" name="pwd" value="" />
    <button type="button" onclick='doSubmitForm()'>提交<button/>
</form>


<script>
var form = document.getElementById('test_form');
// 也可以这样提交
form.submit();
</script>

 

.netcore 官方文档 (https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.1)

绑定源参数推理   

绑定源特性定义可找到操作参数值的位置。 存在以下绑定源特性:

绑定源参数推理
特性绑定源
[FromBody] 请求正文
[FromForm] 请求正文中的表单数据
[FromHeader] 请求标头
[FromQuery] 请求查询字符串参数
[FromRoute] 当前请求中的路由数据
[FromServices] 作为操作参数插入的请求服务

 HTTP Content-type (https://www.runoob.com/http/http-content-type.html)

常见的媒体格式类型如下:

  • text/html : HTML格式
  • text/plain :纯文本格式
  • text/xml : XML格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png:png图片格式

以application开头的媒体格式类型:

  • application/xhtml+xml :XHTML格式
  • application/xml: XML数据格式
  • application/atom+xml :Atom XML聚合格式
  • application/json: JSON数据格式
  • application/pdf:pdf格式
  • application/msword : Word文档格式
  • application/octet-stream : 二进制流数据(如常见的文件下载)
  • application/x-www-form-urlencoded : <form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)

另外一种常见的媒体格式是上传文件之时使用的:

  • multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式

    转自:https://www.cnblogs.com/Blogs-Wang/p/10071056.html

标签:form,FromForm,FromBody,application,json,格式,Net
From: https://www.cnblogs.com/SmallChen/p/17321789.html

相关文章

  • https://blog.csdn.net/Slade99X/article/details/119790716
    https://blog.csdn.net/Slade99X/article/details/119790716https://blog.csdn.net/challenglistic/article/details/129556054https://blog.csdn.net/u011215927/article/details/108206559......
  • Kubernetes API相关知识
    Kubernetes集群中,所有组件需要操作集群资源时都通过调用kube-apiserver提供的RESTful接口来实现。kube-apiserver进一步和etcd交互,完成资源信息的更新。Kubernetes中的资源本质上是一个API对象,这个对象的期望状态被APIServer保存在etcd中,然后提供RESTful接口用于更新这些对象。......
  • 代理网关设计与实现(基于NETTY)
    一问题背景平台端购置一批裸代理,来做广告异地展现审核。从外部购置的代理,使用方式为:通过给定的HTTP的API提取代理IP:PORT,返回的结果会给出代理的有效时长3~5分钟,以及代理所属地域;从提取的代理中,选取指定地域,添加认证信息,请求获取结果;本文设计实现一个通过的代理网关:......
  • Stochastic Training of Graph Convolutional Networks with Variance Reduction
    目录概符号说明Motivation本文方法代码ChenJ.,ZhuJ.andSongL.Stochastictrainingofgraphconvolutionalnetworkswithvariancereduction.ICML,2018.概我们都知道,GCN虽然形式简单,但是对于结点个数非常多的情形是不易操作的:多层的卷积之后基本上每个结点......
  • 【图像去雾】基于DehazeNet实现图像去雾附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • .NET 实现 JWT 登录验证
    .NET实现JWT登录验证在现代Web应用程序中,身份验证和授权是必不可少的功能。JSONWebToken(JWT)是一种广泛使用的身份验证和授权机制,它可以用于安全地传输用户信息和授权数据。在本篇博文中,我们将学习如何在C#.NET中实现JWT登录验证,并处理用户信息的加密、刷新Token......
  • 读论文P2Net
    Abstract本文处理了室内环境中的无监督深度估计任务。这项任务非常具有挑战性,因为在这些场景中存在大量的非纹理区域。这些区域可以淹没在常用的处理户外环境的无监督深度估计框架的优化过程中。然而,即使这些区域被掩盖了,性能仍然不能令人满意。在本文中,我们认为非区分点匹配的性能......
  • kubernetes-nfs共享存储
    搭建nfs服务端#修改权限chmod-R777/nfs/data#编辑export文件vim/etc/exports/nfs/data*(rw,no_root_squash,sync)(“*“代表所有人都能连接,建议换成具体ip或ip段,如192.168.20.0/24)#配置生效exportfs-r#查看生效exportfs#启动rpcbind、nfs服务systemctlresta......
  • kubernets 集群证书过期解决方式
    查看证书过期时间kubeadmcertscheck-expiration解决方案手动更新证书#更新证书kubeadmcertsrenewall#重启相关服务dockerrestart$(dockerps|grep-E'kube-apiserver|kube-controller-manager|kube-scheduler|etcd'|awk'{print$1}')原文链接https://www.c......
  • Netty面试专题
    1.BIO、NIO和AIO的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有......