我将简化它,下面是我得到的代码。将对象传递给HttpPost中的视图
public ActionResult DeleteNonCIStaffUser(int id)
{
return View(_contractsControlRepository.FetchNonCIStaffUserByID(id));
}
[HttpPost]
public ActionResult DeleteNonCIStaffUser(ContractUser contractUser)
{
try
{
_contractsControlRepository.DeleteNonCIStaffUser(contractUser.User_Key);
return RedirectToAction("NonCIStaffUsers"); // never reaches this as an exception is thrown!
}
catch
{
ViewData["ExceptionMessage"] = "Exception caught!";
return View(contractUser); // I'm expecting this statement to return the ContractUser object instantiated with the same data as the GET action.
}
}
的HttpPost
包含ContractUser
对象。回发后,我没有任何东西,contractUser对象不再存在,我觉得很奇怪。 FetchNonCIStaffByUser(int)
带回一个ContractUser对象(它工作)。删除页面显示来自此对象的信息,因此我知道初始条目可以工作,如果发生错误,则只是回发,而不会显示ContractUser
对象的信息。
任何想法为什么会发生这种情况?我期望contractUser
对象被返回到视图。
FIXED
<%= Html.Hidden("FullName", Model.FullName) %>
<%= Html.Hidden("User_Key", Model.User_Key) %>
既不领域实际上被放在页面的表单元素,因此没有被调回。很高兴知道。
Doh,对不起,这是正确的。看到我的修复,你是对的。 – Kezzer 2009-09-07 12:57:47