我正在开发一个多语言网站,我需要先设置语言,然后使用Resources文件以该语言显示页面。
我使用了两个索引动作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.Mvc;
using System.Globalization;
using global_vrf.GeoIpService;
namespace global_vrf.Controllers
{
public class HomeController : Controller
{
public ActionResult Index(string language)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
return View();
}
public ActionResult Index()
{
string language="en-us";
return View(language);
}
}
}
但是当我运行页面时,我有这个错误:
控制器类型的当前动作请求'索引' 'HomeController'在以下操作方法之间不明确: 类型上的System.Web.Mvc.ActionResult索引(System.String) global_vrf.Controllers.HomeController System.Web.Mvc.ActionResult 类型为global_vrf.Controllers.HomeController的索引()
答案 0 :(得分:1)
只需制作一种方法:
namespace global_vrf.Controllers
{
public class HomeController : Controller
{
public ActionResult Index(string language)
{
if(String.IsNullOrWhiteSpace(language))
{
string language="en-us";
}
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
return View();
}
}
}
你无法制作2种方法,因为string
可能为空。
答案 1 :(得分:0)
[HttpPost]
public ActionResult Index(string language)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
return View();
}
[HttpGet]
public ActionResult Index()
{
string language="en-us";
return View(language);
}