私は多言語のWebサイトで作業しています。まず言語を設定してから、リソースファイルを使用してその言語でページを表示する必要があります。Asp.net MVCのオーバーロードインデックスアクション
私は2つのindexアクションこのように使用:
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]を使用する必要があります。 –
2番目の方法を削除します。最初の方法では 'language'の値が' null'ならば 'en-us"に設定します。 –
@StephenMueckethankあまりにも、teo van kotは同じことを示唆し、それはうまく動作します –