我有一个3种语言的mvc3网站。
英语是默认语言,因此,如果您访问mysite.com
或mysite.com/en
,则会获得相同的页面。
我想要的是从mysite.com
(或mysite.com/
)到
mysite.com/en
这是最好的方法吗?
提前致谢
PS
我在this文章之后管理了网站本地化。
答案 0 :(得分:2)
我会设置IIS URL Rewrite来检查传入的网址。如果url在开始时没有两个字符,那么你可以假设它需要被重写,你应该重新定向到url,并在开头附加en。
这假设你没有任何真正的路由,在开头有2个字符......如果不是这样的话那么你可以检查一组不同的2个字符的语言值。
答案 1 :(得分:0)
using System.Web.Mvc;
public class HomeController : Controller
{
public ActionResult Index()
{
return RedirectPermanent("http://mysite.com/en/");
}
}
答案 2 :(得分:0)
我会有两个路线和两个动作,一个根据文化进行重定向[例如。 Index()],另一个将语言作为参数[Index(string language)]
答案 3 :(得分:0)
在Phil Haack的RouteMagic帮助程序库(他前一段时间blogged about)中,有一个RedirectRoute extension提供了一种清晰的方法来定义使用永久重定向重定向到其他路由的路由。我认为这将是比使用IIS设置更“可发现”的解决方案。这是available via NuGet。
菲尔还written a post使用RouteMagic,几乎完全描述了你要做的事情。