asp.net mvc - 返回视图不会触发代码... url错误

时间:2010-09-26 12:58:51

标签: asp.net-mvc

我有以下接受表单提交的代码

        [ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
        public ActionResult TestingTemp(FormCollection result)
        {
            string cat = ""; 
            return View("Try");  
        }

现在的问题是,即使它似乎加载了“尝试”页面,但事情在页面上中断,因为它不会触发以下代码(如果我直接转到Try页面,它会被正确触发)。

        public ActionResult Try()
        {
            ViewData["Test"] = DataLayer.Test(0, 10);
            return View(); 
        }

如果你知道我的意思,那么url还包含TestingTemp,它应该包含Try。

2 个答案:

答案 0 :(得分:3)

我认为你要找的是RedirectToAction。它将重定向到您的其他方法并重写URL。

    [ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
    public ActionResult TestingTemp(FormCollection result)
    {
        string cat = ""; 
        return RedirectToAction("Try");  
    }

答案 1 :(得分:0)

首选的方法是使用redirectToAction,但是如果你想这样做那么你必须把你在Try方法中所做的数据放在

[ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
        public ActionResult TestingTemp(FormCollection result)
        {
            string cat = ""; 
            ViewData["Test"] = DataLayer.Test(0, 10);
            return View("Try");  
        }

但正如我所说的那样不是首选,即在每个动作中重复你的代码而不是你可以写一些像

[ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
    public ActionResult TestingTemp(FormCollection result)
    {
        string cat = ""; 
        return RedirectToAction("Try");  
    }