RedirectToAction如何不打我的动作?

时间:2011-01-12 18:01:56

标签: asp.net-mvc redirecttoaction

我在MVC应用程序中看到了一些意想不到的行为。

假设我有3个动作方法

  • 详细
  • Details_Fr
  • Details_En

第二和第三背后的想法是他们切换语言然后重定向到“真正的”详细信息操作。

但是,当我在“详细信息”中使用断点调用RedirectToAction时,未达到。当我按照“Controller / Details”顺序访问页面并从那里“Controller / Details_Fr”访问页面时就是这种情况。

以下是我的行动:

    public ActionResult Details()
    {
        return View(new MyViewModel());
    }

    public ActionResult Details_Fr()
    {
        this.SetLanguage(CultureInfo.GetCultureInfo("fr-CA"));
        return RedirectToAction("Details");
    }

    public ActionResult Details_En()
    {
        this.SetLanguage(CultureInfo.GetCultureInfo("en-US"));
        return RedirectToAction("Details");
    }

我不是在寻找一个解决方案,因为通过将RedirectToAction更改为View(新的MyViewModel())可以轻松完成。我正在寻找解释,所以我明白这是什么以及为什么会发生这种情况。

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该在ActionFilter属性中设置语言(CurrentCulture和CurrentUXulture,而不是创建那些可怕的_Fr和_En操作......!