gpt4 book ai didi

javascript - 如何使用 fetch 将 FormData 从 javascript 发送到 ASP.NET Core 2.1 Web API

转载 作者:行者123 更新时间:2023-12-03 00:51:13 25 4
gpt4 key购买 nike

我正在尝试创建一个表单,将 FormData 对象发送到 API Controller ,将数据序列化到 Article 类,但我无法让它工作。我已经尝试过评论的内容。

这是我的 HTML:

<form onsubmit="postArticle()">
<input type="type" name="Title" value="" />
<input type="type" name="Content" value="" />
<input type="submit" value="Submit" />
</form>

这是我的 JS:

<script>

var postArticle = () => {
event.preventDefault();
var Article = new FormData(this.event.target);
console.log([...Article]);
fetch('/api/Articles', {
headers: {
'Content-Type': 'multipart/formdata',
//'Content-Type': 'application/json'
},
method: "POST",
body: Article
//body: JSON.stringify(Article)
})
}
</script>

Controller :

    // POST: api/Articles
[HttpPost]
public async Task<IActionResult> PostArticle(Article article)
{
string name = article.Title;
if (!ModelState.IsValid)
{
return Ok();
}

_context.Article.Add(article);
await _context.SaveChangesAsync();

return Ok();
}

和我的文章类:

public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}

最佳答案

现在可以使用了!解决方案是在添加 [FromForm] 的同时不设置任何内容类型 header ,谢谢大家的贡献。

部分解决方案位于this thread

这些是变化:

var postArticle = () => {
event.preventDefault();
var Article = new FormData(this.event.target);
console.log([...Article]);
fetch('/api/Articles', {
method: "POST",
body: Article
})
}

// POST: api/Articles
[HttpPost]
public async Task<IActionResult> PostArticle([FromForm]Article article)
{
string name = article.Title;
if (!ModelState.IsValid)
{
return Ok();
}

//_context.Article.Add(article);
//await _context.SaveChangesAsync();

return Ok(); //CreatedAtAction("GetArticle", new { id = article.Id }, article);
}

关于javascript - 如何使用 fetch 将 FormData 从 javascript 发送到 ASP.NET Core 2.1 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53032441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com