我嘗試通過鏈接張貼到SetLanguage動作,但不知道如何完成以下代碼:如何通過連接柱在ASP.NET核心
<form id="selectLanguage" asp-controller="Home" asp-action="SetLanguage" asp-route-returnUrl="@Context.Request.Path" method="post" role="form">
@foreach (var culture in cultures) {
<div>
<a href="[email protected]">@culture.Name</a>
</div>
}
</form>
我應該使用form
或有是一個直接的方法來發送POST與culture : 'EN'
參數,例如?
@Url.Action(action: "SetLanguage", controller:"Home", values: new { culture = culture.Name }, protocol:"POST")
做的工作?
我的控制器代碼
[HttpPost]
public IActionResult SetLanguage(string culture, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
return LocalRedirect(returnUrl);
}
是的,這肯定會做的工作 – Musab