【C#】绑定源特性(Binding Resource Attribute)之[FromBody]与[FromForm]
c# 特性 绑定 attribute resource Binding
2023-09-11 14:14:50 时间
[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>
绑定源参数推理
绑定源特性定义可找到操作参数值的位置。 存在以下绑定源特性:
绑定源参数推理
特性 | 绑定源 |
---|---|
[FromBody] | 请求正文 |
[[FromForm]] | 请求正文中的表单数据 |
[FromQuery] | 请求查询字符串参数 |
[FromRoute] | 当前请求中的路由数据 |
[FromServices] | 作为操作参数插入的请求服务 |
Http Context-Type|
常见的媒体格式类型如下:
- 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 : 中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
另外一种常见的媒体格式是上传文件之时使用的:
- multipart/form-data : 需要在表单中进行文件上传时,就需要使用该格式
相关文章
- c# 委托
- c# 历史版本特性
- C# 各版本的新特性
- C#中三种定时器对象的比较
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1. 版本历史1 1.1. C# 1.0-纯粹的面向对象2 1.2. C# 2.0
- Atitit .c#的未来新特性计划草案
- Atitit. C#.net clr 2.0 4.0新特性
- Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage mvc mvp的 java c#.net php js
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结
- C# 获取当前时间
- C# 获得Excel工作簿Sheet页面(工作表)集合的名称
- C#高级特性_Attribute
- C#+无unsafe的非托管大数组(large unmanaged array in c# without 'unsafe' keyword)
- 在c# 7.3中不可用,请使用8.0或更高的语言版本
- C# .NET 中的缓存实现详情
- 从0开始搭建一个IoC容器(C#版)
- [C#]c#中数据的同步加锁机制 的几种方法
- C# 通过反射获取特性的值
- C#调用Windows API实现自定义打印纸张大小