我有2个问题,1。我有一个编辑操作并使用 formcollection 从Httppost上的HiddenFor中获取值,然后我用它在另一个数据库表中进行更改我想知道有没有一种方法可以在表单提交后看到FormCollection的价值?
[HttpPost]
public ActionResult Edit(relisting house,FormCollection tt)
{
if (ModelState.IsValid)
{
// I would like a way to check the value of getid after submission since
//my code isn't working. This is an EDIT Action so the GETID has a value
//atleast before the post.
int getid = Convert.ToInt32(tt["RegistrationID"]);
var checksopen = (from d in db.openhouses where getid == d.RegistrationID
select d).FirstOrDefault();
house.squarefeet = checksopen.squarefeet;
house.city = checksopen.city;
db.Entry(checksopen).State = EntityState.Modified;
db.SaveChanges();
}
return View(house);
}
我的上一个问题是我上面的完整代码使用了2 db.Entry()。State = EntityState.Modified;但只有1个工作;是否有任何东西可以使第二个实体。修改不起作用?假设 checksopen 确实匹配?我将数据从父模型重新传递到子模型 openhouse ,因此对于每个开放式房间都有一个重新存在,所以我想捕获两者中的更改以保持它同步。
[HttpPost]
public ActionResult Edit(relisting house,FormCollection tt)
{
if (ModelState.IsValid)
{
// This one works
db.Entry(house).State = EntityState.Modified;
db.SaveChanges();
// This one doesn't work
int getid = Convert.ToInt32(Request.Form["RegistrationID"]);
var checksopen = (from d in db.openhouses where getid ==
d.RegistrationID select d).FirstOrDefault();
house.squarefeet = checksopen.squarefeet;
house.city = checksopen.city;
db.Entry(checksopen).State = EntityState.Modified;
db.SaveChanges();
}
return View(house);
}
答案 0 :(得分:0)
我想知道在表单提交后我能看到FormCollection的值吗?
有可能。您的代码可能会将参数传递给您在发布操作后返回的Model
属性。 return View(house);
您正在返回名为house
的模型。只需向此模型添加新的公共参数,然后将RegistrationID
分配给它。
提示:出于性能方面的考虑,无需发布FormCollection
,因为它会发布您视图中的所有项目。仅发布包含隐藏模型值的必要属性的Model
将是更好的方法。