ASP.NET MVC (MVC3)의 첫 프로젝트이고 모든 것을 처리하는 데 많은 어려움을 겪고 있습니다. 선택한 언어에 따라 페이지의 모든 텍스트가 데이터베이스에서 선택됩니다. 이 언어 선택을 위해 저는 Session 변수를 사용하기를 원했습니다. 나는 이미지 링크을 언어에 필요로하므로 다음 행을 .cshtml 페이지에 썼습니다. Asp.NET MVC3 불량 요청
@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 - 잘못된 요청." 아무도 내가 잘못하고있는 일이나 내가해야 할 일을 말해 줄 수 있습니까?
피씨 : 나는 폼없이 새로운 기능을 컨트롤러 Lang에 추가하고 거기에서 인덱스로 리디렉션했지만 성공하지는 못했습니다.
정말 고마워요!HttpGet 정보; HttpPost 대신 HttpGet을 배치 했으므로 Tr 및 Eng을 출력으로 얻을 수 있지만 지금은 원래의 Index() 기능을 사용할 수 없습니다. 지식이 부족해서 죄송합니다. C#을 처음 접했을 때 Java의 @Override 형식으로 [HttpGet]을 여기에 사용할 수 있습니까? –
예제 컨트롤러 동작에 대한 내 편집을 참조하십시오. 'Session'과는 아무 관련이 없으므로 질문의 제목도 편집 할 것입니다. –