时间:2011-07-07 16:16:05

标签: asp.net asp.net-mvc-2 asp.net-mvc-3

我正在研究一个问题。作为管理员,您可以在查看问题时编辑问题。

包含问题的页面可以包含以下网址:

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 :(得分:0)

您有一个控制器“调查”和操作“DisplayQuestions”。您基本上需要的是将Admin返回此操作。但是,据我所知,DisplayQuestions接收了一些参数(2/1)..因为,你必须使用相同的参数来恢复相同的状态。

我相信Question对象,包含所有必需的信息..如果没有,则必须进行扩展。

我不知道你的模型是怎样的,所以我认为问题包含Id,QuestionId字段(仅适用于intance)

[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。