我在MVC应用程序中看到了一些意想不到的行为。
假设我有3个动作方法
第二和第三背后的想法是他们切换语言然后重定向到“真正的”详细信息操作。
但是,当我在“详细信息”中使用断点调用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())可以轻松完成。我正在寻找解释,所以我明白这是什么以及为什么会发生这种情况。
谢谢!
答案 0 :(得分:0)
您应该在ActionFilter属性中设置语言(CurrentCulture和CurrentUXulture,而不是创建那些可怕的_Fr和_En操作......!