我想在數據庫中提交一些數據後重定向到上一頁。我正在使用TempData
在當前頁面上檢索ID
,然後我將以我想提交的表格(which have an ID
)進入頁面,但在POST
方法被觸發後TempData
被current page ID
覆蓋,這是帶有表單和頁面的頁面我想ReturnRedirect
到它的ID的初始頁面。當我嘗試ReturnRedirect時,TempData會被忽略。
下面的代碼:
控制器與GET方法,我找回ID:
var currentID = Url.RequestContext.RouteData.Values["id"];
TempData["currentId"] = currentID;
控制器與POST方法,我嘗試重定向:
if (ModelState.IsValid)
{
// Editing records in database
....
return RedirectToAction("Details", "Jobs",
new { controller = "JobsController", action = "Details", id = TempData["currentId"] });
}
ModelState.AddModelError("", "Something failed");
return View();
我用這因爲如果使用POST方法的當前操作沒有ID,它的工作方式。
謝謝你的任何建議。
編輯:
我有工作的詳細信息:
// GET: Jobs/Details/5
public ActionResult Details(Guid id)
{
var currentID = Url.RequestContext.RouteData.Values["id"];
TempData["currentId"] = currentID;
var currentUserTemp = LoggedUserId;
TempData["userID"] = currentUserTemp;
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Job job = db.Jobs.Find(id);
if (job == null)
{
return HttpNotFound();
}
return View(job);
}
但是從這個網頁我想一個鏈接到一個網頁,我編輯當前用戶的數據。
查看詳細信息頁面代碼:
@Html.ActionLink("Edit Company Details", "Edit", "UserAdmin", new { id = TempData["userID"] }, null)
現在我在編輯用戶頁面上,我編輯的形式,並使用保存按鈕(觸發POST方法)我想使用其他TempData的變量ReturnRedirect
上的詳細信息但由於這兩個頁面都有ID,TempData會被URL中的最後一個ID覆蓋,這個ID就是用戶的ID而不是ID。
你在哪寫過'var currentID = Url.RequestContext.RouteData.Values [「id」]; TempData [「currentId」] = currentID;'代碼 –
你能否讓你的問題更清楚一點。如果需要,添加一些代碼 –
@MyName - 請添加您的操作方法(獲取和發佈兩個)簽名。如果你可以使用同名的get和post操作方法,那麼不需要重定向就直接返回View()。 –