我喜欢为我的帖子数据创建一个操作方法。因此,假设您有一个 UserViewModel:
public class UserViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
然后是一个用户控制器:
public class UserController
{
[HttpGet]
public ActionResult Edit(int id)
{
// Create your UserViewModel with the passed in Id. Get stuff from the db, etc...
var userViewModel = new UserViewModel();
// ...
return View(userViewModel);
}
[HttpPost]
public ActionResult Edit(UserViewModel userViewModel)
{
// This is the post method. MVC will bind the data from your
// view's form and put that data in the UserViewModel that is sent
// to this method.
// Validate the data and save to the database.
// Redirect to where the user needs to be.
}
}
我假设您的视图中已经有一个表单。您需要确保表单将数据发布到正确的操作方法。在我的示例中,您将像这样创建表单:
@model UserViewModel
@using (Html.BeginForm("Edit", "User", FormMethod.Post))
{
@Html.TextBoxFor(m => m.Name)
@Html.HiddenFor(m => m.Id)
}
这一切的关键是 MVC 所做的模型绑定。使用 HTML 助手,例如我使用的 Html.TextBoxFor。此外,您会注意到我添加的视图代码的第一行。@model 告诉视图您将向其发送 UserViewModel。让引擎为您工作。
编辑:好电话,在记事本中完成了所有操作,忘记了 ID 的 HiddenFor!