我试图上传JSON文件,以便从中读取值并将它们保存在数据库中,但我有问题。我的控制器代码如下:
[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class ImportController : ControllerBase
{
private readonly DatabaseContext dbContext;
public ImportController(DatabaseContext dbContext)
{
this.dbContext = dbContext;
}
[HttpPost]
public IActionResult ImportData(IFormFile file)
{
var content = string.Empty;
using (var reader = new StreamReader(file.OpenReadStream()))
{
content = reader.ReadToEnd();
}
List<UserModel> userObjects = null;
try
{
userObjects = JsonConvert.DeserializeObject<List<UserModel>>(content);
}
catch
{
return BadRequest();
}
foreach (var user in userObjects)
{
UserModel us = new UserModel
{
Username = user.Username,
Password = user.Password
};
dbContext.User.Add(us);
dbContext.SaveChanges();
}
return Ok();
}
}
我正在使用Postman发送JSON数据,但无论何时我尝试这样做,我得到以下响应:
{“用户名”:[“输入无效。”]}
当我尝试将JSON数据作为raw-> application / json OR发送时
{“”:[“输入无效。”]}
当我尝试通过表单数据发送它时,使用名为“file”的键和test.json文件作为值。
你能指引我走正确的道路吗?我尝试使用[FromBody] UserModel user
作为我的操作的参数,但它只允许我处理一个JSON字符串。
我解决了......我所要做的就是删除[ApiController]
属性。具有该属性导致应用程序根本没有访问我的ImportData方法。