我將簡化它,下面是我得到的代碼。將對象傳遞給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