Asp.net mvc 4 数据未插入到数据库中
我是asp.NETMVC4新手 我有一个文本框和从一个表中提取的文本框值。但是,当单击“提交”按钮时,我想将该值插入到不同的表中,这不是插入并显示错误。它将值设为null 编码 查看Asp.net mvc 4 数据未插入到数据库中,asp.net-mvc-4,Asp.net Mvc 4,我是asp.NETMVC4新手 我有一个文本框和从一个表中提取的文本框值。但是,当单击“提交”按钮时,我想将该值插入到不同的表中,这不是插入并显示错误。它将值设为null 编码 查看 @Html.TextBox("empname", (string)ViewBag.empname, new { @readonly = "readonly" }) 控制器 [HttpGet] public ActionResult Facilities() { mstEmpDetail emp = new
@Html.TextBox("empname", (string)ViewBag.empname, new { @readonly = "readonly" })
控制器
[HttpGet]
public ActionResult Facilities()
{
mstEmpDetail emp = new mstEmpDetail();
emp = db.mstEmpDetails.Single(x => x.intEmpId == 10001);
ViewBag.empname = emp.txtEmpFirstName;
return View();
}
[HttpPost]
public ActionResult Facilities(TrnBusinessCardDetail bc)
{
var empname1 = ViewBag.empname;
bc.txtfirstName = empname1;
db.TrnBusinessCardDetails.Add(bc);
db.SaveChanges();
return RedirectToAction("Facilities");
}
当我使用普通文本框时,它被正确插入,但当我检索到
fro DB那我就有这个问题了?
如何解决这个问题 我认为问题在于使用
var empname1=ViewBag.empname代码>在post controller中,因为ViewBag.empname
当时丢失了它的值。ViewBag是一条单行道-您可以使用它向视图传递信息,但不能使用它从视图获取信息。POST方法中的语句ViewBag.empname
在代码中的值为null。正如@dotnetom所建议的,ViewBag是一条单行道。MVC是无状态的,所以POST请求不是前一个get请求的“往返”。因此,您的ViewBag无法保持其状态
MVC可以根据表单参数确定(并构造)动作参数。在本例中,您添加了一个名为“empname”的文本框。因此,您应该在POST请求中获取此值作为参数
[HttpPost]
public ActionResult Facilities(TrnBusinessCardDetail bc, string empname)
{
bc.txtfirstName = empname;
db.TrnBusinessCardDetails.Add(bc);
db.SaveChanges();
return RedirectToAction("Facilities");
}
考虑到您的问题,这将是最简单的解决方案。更合适的方法是直接将文本框与模型属性绑定。这样,您就不必担心在控制器中检索属性值并将其分配给模型 你在使用什么数据库?你能告诉我们你用来连接数据库的连接字符串吗??