我想在数据库中提交一些数据后重定向到上一页。我正在使用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()。 –