Как перенаправить пользователя на предыдущий URL после отправки формы? - PullRequest
0 голосов
/ 07 июля 2011

Я работаю над анкетой. Как администратор, вы можете редактировать вопросы по мере их просмотра.

Страница с вопросами может иметь следующий URL:

http://localhost/Survey/DisplayQuestions/2/1

Когда администратор нажимает на ссылку «Изменить», отображается представление «Изменить». Когда администратор нажимает «Сохранить», я хотел бы перенаправить его на предыдущий сайт, который в этом примере будет:

http://localhost/Survey/DisplayQuestions/2/1

Как мне это сделать?

Действие «Правка» выглядит следующим образом:

        [HttpPost]
    public ActionResult Edit(Question question)
    {
        if (ModelState.IsValid)
        {
            db.Question.Attach(question);
            db.ObjectStateManager.ChangeObjectState(question, EntityState.Modified);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.category_id = new SelectList(db.Category, "category_id", "category_name", question.category_id);
        ViewBag.type_code = new SelectList(db.Question_Type, "type_code", "type_description", question.type_code);
        return View(question);
    }

Спасибо!

1 Ответ

0 голосов
/ 07 июля 2011

У вас есть контроллер "Survey" и действие "DisplayQuestions". Что вам в основном нужно, это вернуть администратора обратно к этому действию. Но, насколько я вижу, DisplayQuestions получает некоторые параметры (2/1). Поскольку для восстановления одного и того же состояния необходимо ввести одинаковые параметры.

Я полагаю, что объект Вопрос содержит всю необходимую для этого информацию. Если нет, он должен быть расширен.

Я не знаю, как выглядит ваша модель, поэтому я предполагаю, что Вопрос содержит поле Id, QuestionId (только для примера)

[HttpPost]
    public ActionResult Edit(Question question)
    {
        if (ModelState.IsValid)
        {
            // do something..

            return RedirectToAction("DisplayQuestions", "Survey", new { id = question.Id, questionId = question.questionId});
        }

        // do something else..     
        return View(question);
    }

Это правильно перенаправило бы на DisplayQuestions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...