zoukankan      html  css  js  c++  java
  • [FromBody]与[FromForm]区别

    [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 : 需要在表单中进行文件上传时,就需要使用该格式
  • 相关阅读:
    git 一般的使用操作
    php 导出excel,csv
    安装sublime_text_3
    安装mongodb记录,mongo基本命令记录
    redis 安装记录
    YII2 activeform样式修改
    go 安装下载
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hbsjz/com.hbsjz.BaseMapActivity}:
    SQLServer创建触发器,更新表
    SQL Server触发器创建、删除、修改、查看示例步骤
  • 原文地址:https://www.cnblogs.com/Blogs-Wang/p/10071056.html
Copyright © 2011-2022 走看看