Я хочу перенаправить на предыдущую страницу после отправки некоторых данных в базу данных. Я использую TempData
для извлечения ID
на текущей странице, затем я перехожу на страницу с формой, которую я хочу отправить (which have an ID
), но после того, как был уволен метод POST
TempData
получает переоцененный current page ID
, который является страницей с формой и Я хочу, чтобы ReturnRedirect
на начальную страницу с ее ID.TempData получает переопределение при попытке ReturnRedirect
Вот код:
контроллер с методом GET, где я получить идентификатор:
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 не имеет идентификатора.
Благодарим за любые предложения.
EDIT:
У меня есть подробности о вакансии:
// 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)
Теперь я на редактирование пользователя Page, отредактировать форму и использовать кнопку сохранения (который вызывает метод POST) Я хочу использовать другую переменную TempData в ReturnRedirect
на детали Страница, но поскольку обе страницы имеют идентификаторы, TempData получает переопределение с последним идентификатором из URL-адреса, который является идентификатором идентификатора пользователя.
где вы писали 'var currentID = Url.RequestContext.RouteData.Values [" id "]; TempData ["currentId"] = currentID; 'code –
вы можете задать вам вопрос более понятным. При необходимости добавьте код –
@MyName - добавьте свой метод действия (получите и опубликуйте обе). Если вы можете использовать одно и то же имя для метода get и post action, то нет необходимости перенаправлять просто return View(). –