我正在尝试使用 ASP.NET Core MVC 构建一个简单的 API。
我已经成功构建了一个具有获取、发布、编辑和删除功能的 api。然而,邮递员 JSON 原始帖子导致 Null 值,但是如果我使用表单数据,它可以完美运行。
我想将数据作为原始 json 发送,知道我做错了什么吗?
我的模型
[Table("continous value monitoring")]
public class Continous
{
[Key]
public int UserID { get; set; }
public float Value { get; set; }
public string ReadingType { get; set; }
}
数据上下文:
public class DataContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
var configuration = builder.Build();
optionBuilder.UseMySql(configuration
["ConnectionString:DefaultConnection"]);
}
public DbSet<Continous> Continous { get; set; }
}
控制器
[Produces("application/json")]
[Route("continous")]
public class ContinousController : Controller
{
private DataContext db = new DataContext();
[Route("")]
[Route("index")]
[Route("~/")]
public IActionResult Index()
{
ViewBag.Continous = db.Continous.ToList();
return View();
}
[HttpGet]
[Route("Add")]
public IActionResult Add()
{
return View("Add");
}
[HttpPost]
[Route("Add")]
public IActionResult Add(Continous continous)
{
db.Continous.Add(continous);
db.SaveChanges();
return RedirectToAction("Index");
}
[HttpGet]
[Route("Delete/{UserID}")]
public IActionResult Delete(int UserID)
{
db.Continous.Remove(db.Continous.Find(UserID));
db.SaveChanges();
return RedirectToAction("Index");
}
[HttpGet]
[Route("edit/{UserID}")]
public IActionResult Edit(int UserID)
{
return View("Edit", db.Continous.Find(UserID));
}
[HttpPost]
[Route("edit/{UserID}")]
public IActionResult Edit(int UserID, Continous continous)
{
db.Entry(continous).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
查看与添加对应的文件
<!DOCTYPE html>
<html>
<head>
<meta name="viewpoint" content="width=device-width" />
<title>Add</title>
</head>
<body>
<form method="post" asp-controller="continous" asp-action="add">
<table>
<tr>
<td>UserID</td>
<td>
<input type="number" asp-for="UserID" min="0" required="required" />
</td>
</tr>
<tr>
<td>Value</td>
<td>
<input type="number" asp-for="Value" min="0" required="required" />
</td>
</tr>
<tr>
<td>Reading Type</td>
<td>
<input type="text" asp-for="ReadingType" required="required" />
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" value="Save" />
</td>
</tr>
</table>
</form>
</body>
</html>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句