Diskuze: ASP.NET Redirect podle jazyku
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tak tohle mi funguje:
if (HttpUtility.HtmlEncode(Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]) == HttpUtility.HtmlEncode ("cs-CZ"))
{
Response.Redirect ("http://www.seznam.cz");
}
else
{
Response.Redirect ("http://www.google.com");
}
Ale nevím jak udělat pomoci switche nebo if když chci např. 3, nebo 5 jazyku.
5x stejnou podminku asi dělat je blbost.
Zkus tohle:
switch (Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"])
{
case "cs-CZ":
Response.Redirect("http://www.seznam.cz");
break;
case "en-EN":
Response.Redirect("http://www.google.com");
break;
}
Podle mě je problém v tom, že hodnotu z Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"] proháníš metodou HttpUtility.HtmlEncode(), ale pak jí porovnáváš s "běžnými" stringy. U podmínky, která ti funguje máš HttpUtility.HtmlEncode ("cs-CZ"), kdežto ve switchi máš jen "cs-CZ".
Už jsem to našel.
Možná někomu pomůže
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ViewSwitcher
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sLang = Request.UserLanguages[0];
sLang = sLang.Substring(0, 2);
switch (sLang)
{
case "en":
Response.Redirect("http://www.google.com/");
break;
case "cs":
Response.Redirect("http://www.seznam.cz/");
break;
}
}
}
Já jsem to sem dál dřív než přečetl odpovědi
Zobrazeno 7 zpráv z 7.