javascript - 无需创建模型即可发布 2 个字符串的最简单方法
问题描述
我有一个我试图发布到我的 C# API 的对象,它只有两个字符串:
Body
例子:
fetch(url, {
method: 'POST',
body: { username: 'myusername', password: 'mypassword' },
headers:{
'Content-Type': 'application/json'
}
});
我的 API 方法如下所示:
[HttpPost("auth")]
public async Task<IActionResult>(NetworkCredential creds) { ... }
但是,我希望它是这样的:
[HttpPost("auth")]
public async Task<IActionResult>(string username, string password) { ... }
我真的不想只为两个字符串创建一个模型(这就是我目前使用NetworkCredential
. 的原因。)我还有其他不是用户名和密码的实例,所以我无法NetworkCredential
在所有情况下都使用。
是否有任何神奇的组合/方法来设置 API 方法以从有效负载中嗅出单个字符串,而无需创建具有两个属性的模型?我玩过一些属性([FromBody]
例如),但没有运气。
解决方案
感谢@Daniel A. White 和@Amy 的指导。
我的解决方案是传递数据FormData
而不是json
来自客户端。这样做可以让我的“想要的”方法起作用。
注意: this._httpClient
来自Angular HttpClient 模块
例子:
const formData = new FormData();
formData.append('username', 'myusername');
formData.append('password', 'mypassword');
const response = await this._httpClient.post(<url>, formData).toPromise();
API方法:
[HttpPost("auth")]
public async Task<IActionResult>(string username, string password) { ... }
推荐阅读
- python - 从断言中给出的字符串中提取电子邮件地址并在列表中给出它们的函数
- jgit - 区分 JGit 中的轻量级标签和带注释的标签
- django - 如何在 Django 中打印单个对象的所有值?
- ios - UIPresentationController 呈现导航控制器视图
- .net - 框架提供的 SetSocketOption 枚举具有重复的条目。这是如何运作的?
- html - HTML 电子邮件 CSS:将表格和表格内容居中,最受支持的解决方案
- html - 角度响应式设计 - 当屏幕小于某个宽度时添加换行符
- flask - 如何在 gitlab CI 中将 docker-compose flask 项目部署到 AWS ECS
- pandas - 使用一个数据框列中的键和另一数据框列中的值创建字典
- android-studio - 如何将字符串从活动传递到kotlin中的另一个活动