我正在尝试创建一个表单,该表单将FormData对象发送到API控制器,该控制器将数据序列化为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>
控制器:
// 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();
}
和我的Article类:
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
参考方案
现在工作!解决方案是在添加[FromForm]的同时不要设置任何内容类型的标题,谢谢大家的贡献。
解决方案的一部分位于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);
}
无法将路线映射为行动,ASP.NET Core Web API - c#我正在研究Web API项目,并且遇到以下问题:我尝试使用以下网址(https://localhost:44328/api/Users/GetUserBy?username=myusername&password=mypassword)调用名为“ GetUserBy”的操作方法,但在浏览器中收到的结果如下所示:{"id":[…
Json参数转换继承Web API 2 - javascript我正在使用MS Web API 2使用ajax从我们的网页接收呼叫。然后,我有2个类:Subscriber和externalSubscriber。订户包含非常基本的数据,例如名称和ID。外部订户继承自订户并添加基本数据,例如地址和电子邮件。我有一个api方法来编辑这样定义的订户的数据:public IHttpActionResult PutSubscribe…
AJAX调用可从ASP.NET Core Web API动态构建DataTable - javascript当用户单击另一个表的行时,我试图填充一个表。我在第一个表的onClick标记中有一个<tr>事件,该事件触发一个函数将三个属性发送到我的webapi。我有一个命名处理程序,它使用三个属性并将它们用作另一种方法的输入值,以从Azure表中检索数据。响应是预格式化的JSON数据,我将其提供给JavaScript代码。我在渲染视图中看到的是一长串JSO…
调用SignalR Hub不适用于Asp.Net Core Web API - c#我是SignalR的新手。我正在尝试设置一个Asp.Net Core WebAPI,以便其他客户端可以使用SignalR连接到它并获取实时数据。我的Hub类是:public class TimeHub : Hub { public async Task UpdateTime(string message) { await Clients.All.SendAs…
ASP.NET Web API 2中AuthorizeAttribute发生了什么变化? - c#我已经将项目和一组单元测试从ASP.NET Web API升级到ASP.NET Web API 2。我们将自定义DelegatingHandler用于自定义身份验证机制。它将Thread.CurrentPrincipal和HttpContext.Current.User设置为适当的System.Security.Claims.ClaimsPrincipal。…