我搜索了here和其他網頁,但我沒有找到我的問題的答案。這個網頁有一個重定向循環時做Response.Redirect(Request.RawUrl)
我想要實現的是,如果用戶在國家A
和國家B
之間切換,但語言切換但不是將它們返回到主頁,而是將它們重定向到它們所在的同一頁面(使用更新後的語言) 。然而,對我來說棘手的部分是,如果用戶在國家A
和國家C
或D
或其他任何之間切換,我們做想要返回到主頁。所以只有如果他們之間切換A
和B
我做想要重定向到同一頁面。 (我的語言交換的東西是工作的罰款,我只具有在不同場景中的重定向問題。)
我的方法是這樣的:
[HttpGet]
public ActionResult SetLanguage(string languageId)
{
var currentCulture = GetCurrentCulture(); //Gets the current language for a user
if ((currentCulture == "A" || currentCulture == "B")
&& (languageId == "A" || language == "B"))
{
// Set culture to use chosen language/culture
CultureService.SaveCulture(HttpContext.Response, languageId);
Response.Redirect(Request.RawUrl);
}
else
{
CultureModule.SavePreferredCulture(HttpContext.Response, languageCode);
}
return RedirectToAction("Index", "Home", new { culture = languageId });
}
這導致在Chrome這個錯誤:
此網頁有重定向循環
調試時我看來我讓自己陷入無限循環,但我不明白爲什麼/如何,或者如何解決這個問題。
這是我嘗試過改變:在Response.Redirect(Request.RawUrl);
嘗試和return
的是,但是,這並不工作,所以我試圖玩弄其他Redirect
選項,如RedirectPermanent
和其他人。我對此沒有任何運氣,而且我已經有一段時間了,因爲我不得不面對這樣的事情,所以我在這裏對我做錯的事情感到迷茫。
我相信我需要一個return
來代替Response.Redirect(Request.RawUrl);
,但我試過玩過上面的東西,我無法得到任何東西去。
如果您需要任何其他代碼或其他詳細信息,請讓我知道,我會更新帖子。
謝謝你的幫助!
您的家庭方法是否重定向到SetLanguage?如果是這樣,導致重定向的邏輯是什麼? – Necoras
@Necoras不,該方法只是返回'View();' – maxshuty
當然它有一個無限循環。的Response.Redirect(Request.RawUrl);只是意味着「重新回到這裏」。 – Sentinel