用户在我的视图中编辑数据后,如何将数据恢复到我的控制器,以便我可以更新我的数据库?
控制器
public ActionResult Cv(int Id)
{
Cv CvBlog = new Cv();
CvPerson = db.Cv.Find(Id);
return View(CvBlog);
}
查看示例
在这种情况下,我想返回Name
的新值<input type="text" class="form-control" value="@Model.Name" id="name" placeholder="Name">
非常感谢
答案 0 :(得分:0)
而不是value属性在视图中使用name属性,如下所示。
<input type="text" class="form-control" id="name" name="@Model.Name">
获取控制器使用中的值string name=Request["Name"]
请求[&#34;名称&#34;]将具有用户输入的值
答案 1 :(得分:0)
一个选项是将HTML输入的id添加到返回函数的参数列表中,如下所示:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Cv(int id, string name)
{
//TODO: update Cv by whatever means you determine
return View("Index");
}
更好的选择是创建一个可以捕获值的ViewModel(仍然基于HTML输入的id)。这样你也可以对它们进行一些简单的字段/属性级别检查。
查看型号:
public class CvEditViewModel
{
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
}
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Cv(CvEditViewModel model)
{
if (ModelState.IsValid == true)
{
//TODO: update Cv by whatever means you determine
return View("Index");
}
return View(model);
}
答案 2 :(得分:0)
在视图中设置名称属性
<input type="text" class="form-control" value="@Model.Name" name="name" id="name" placeholder="Name">
控制器中的
[HttpPost]
public ActionResult Cv(int id, string name)
{
//TODO: update Cv by whatever means you determine
return View("Index");
}