如果你在使用 ASP.NET MVC、C#、Entity Framework 构建表单的时候遇到了错误,可能需要检查以下几个方面:
确认实体是否正确:检查数据模型、属性名称和数据类型是否与表单一致。
检查控制器代码:确保控制器代码正确地获取表单数据并将其保存到实体中。
检查视图代码:检查表单元素的名称和类型是否正确,并确保表单元素与实体属性相对应。
代码示例:
public class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
public class PersonController : Controller { private ApplicationDbContext _context;
public PersonController()
{
_context = new ApplicationDbContext();
}
// GET: Create Person
public ActionResult Create()
{
return View();
}
// POST: Create Person
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Person person)
{
if (ModelState.IsValid)
{
_context.People.Add(person);
_context.SaveChanges();
return RedirectToAction("Index", "Home");
}
return View(person);
}
}
@model Person
@using (Html.BeginForm("Create", "Person")) { @Html.AntiForgeryToken()
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
@Html.LabelFor(model => model.Age, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Age, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Age, "", new { @class = "text-danger" })
}