我正在使用多語言網站,我需要先設置語言,然後使用資源文件以該語言顯示頁面。Asp.net MVC中的重載索引操作
我用了兩個索引操作是這樣的:
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);
}
}
}
但是當我運行的頁面,我有這樣的錯誤:
The current request for action 'Index' on controller type 'HomeController' is ambiguous between the following action methods: System.Web.Mvc.ActionResult Index(System.String) on type global_vrf.Controllers.HomeController System.Web.Mvc.ActionResult Index() on type global_vrf.Controllers.HomeController
發生這種情況是因爲您具有相同的名稱操作方法。爲了避免這種情況,你必須在每個方法之前使用[HTTPGet]和[HTTPPost]。 –
刪除第二種方法。在第一種方法中,如果'language'的值是'null',那麼將它設置爲'「en-us」' –
@StephenMueckethank你太多了,teo van kot建議相同,並且工作正常 –