有没有办法在控制器返回的视图路径中动态包含会话或类属性/变量的值?
E.g。如果我有一个存储用户当前国家/地区的会话变量,我可以让控制器返回如下内容:
public ActionResult Index()
{
return view(Session["country"] + "/Index")
}
谢谢。
答案 0 :(得分:2)
是的,你可以。例如,如果Session["country"] = "~/Views/Foo/Bar"
可以
public ActionResult Index()
{
var country = (string)Session["country"];
return View(country + "/Index.cshtml");
}
但如果这是出于本地化的目的,可能better ways比为每个国家/地区创建不同的视图。
答案 1 :(得分:0)
当你说“在返回的视图的路径中”时,听起来就像你想要改变用户浏览器上的位置一样。为此,您不会返回ViewResult
;相反,您需要返回一个RedirectResult
,指定您要重定向到的URL或路由。变量可以位于路由数据中,也可以位于您构建的URL中。
您可以使用RedirectResult
的{{1}}方法轻松创建Redirect
。