これは ASP.NET MVC (MVC3) での最初のプロジェクトであり、すべてを処理するのに多くの問題を抱えています。ページ内のすべてのテキストは、選択した言語に従ってデータベースから選択されます。この言語選択では、Session 変数を使用することを好みました。言語へのイメージ リンクが必要なので、次の行を .cshtml ページに書き込みました。
@using (Html.BeginForm()) {
<a href='<%: Url.Action("Index", "Home", new { lang="Tr" }) %>'>
<img src="../../Content/Images/flag_tr.jpg" width="40" height="20" />
</a>
<a href='<%: Url.Action("Index", "Home", new { lang = "En" }) %>'>
<img src="../../Content/Images/flag_en.jpg" width="40" height="20" />
</a>
}
そしてHomeControllerで:
public ActionResult Index()
ViewBag.Message = "Welcome to ASP.NET MVC!";
ViewBag.Selected = "Not yet selected";
return View();
}
[HttpPost]
public ActionResult Index(String lang)
{
if (lang == "Tr")
{
System.Web.HttpContext.Current.Session["Language"] = "Tr";
}
else if (lang == "En")
{
System.Web.HttpContext.Current.Session["Language"] = "En";
}
ViewBag.Selected = System.Web.HttpContext.Current.Session["Language"];
return View();
}
フラグ リンクをクリックすると、「HTTP エラー 400 - 不正な要求」が表示されます。誰かが私が間違っていること、または何をすべきか教えてもらえますか?
PS:フォームなしでも試してみました.Langという名前のコントローラーに新しい関数を追加し、そこからインデックスにリダイレクトしましたが、成功しませんでした.