0

Ich brauche Hilfe. Ich versuche, eine Dropdown-Box mit dem Text Französisch und Englisch im Gegensatz zu den beiden Links zu erstellen, die ich jetzt aus meiner Sicht habe. Ich arbeite in MVC und ich brauche eine Dropdown-Box, die basierend auf der Sprachauswahl des Benutzers automatisch senden sollte (ohne den zusätzlichen Schritt eines Absenden-Buttons), aber basierend auf der Auswahl einfach posten. Es gibt wahrscheinlich einen Weg, es mit ausgewählten Tags und Option Tags und etwas Javascript zu tun, aber ich bin mir nicht sicher, wie. Weiß jemand, wie man das macht?Ich muss die mehrsprachigen Links in eine Drop-Down-Box ändern? Wie kann ich das tun

Hier ist mein Controller

using System; 
using System.Collections.Generic; 
using System.Globalization; 
using System.Linq; 
using System.Threading; 
using System.Web; 
using System.Web.Mvc; 

namespace MultiLanguage.Controllers 
{ 
public class LanguageController : Controller 
{ 
    // GET: Language 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult Change(String LanguageAbbrevation) 
    { 
     if(LanguageAbbrevation !=null) 
     { 
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbbrevation); 
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbbrevation); 
     } 
     HttpCookie cookie = new HttpCookie("Language"); 
     cookie.Value = LanguageAbbrevation; 
     Response.Cookies.Add(cookie); 

     return View("Index"); 
    } 
} 

}

Hier ist meine Ansicht

@{ 
ViewBag.Title = "Index"; 
Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<ul> 
<li>@Html.ActionLink("English","Change","Language",new {LanguageAbbrevation = "en"}, null)</li> 
<li>@Html.ActionLink("French", "Change", "Language", new { LanguageAbbrevation = "fr" }, null)</li> 
<li>@DateTime.Now.ToString()</li> 
</ul> 
+0

jemand jetzt, wie man das macht? – evan

Antwort

0
  1. Kontroller
 
public ActionResult Change(string languageAbbrevation) 
     { 
      if (languageAbbrevation != null) 
      { 
       Thread.CurrentThread.CurrentCulture = new CultureInfo(languageAbbrevation); 
       Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(languageAbbrevation); 

      } 

      HttpCookie cookie = new HttpCookie("Language"); 
      cookie.Value = languageAbbrevation; 
      Response.Cookies.Add(cookie); 
      Response.Redirect("Index"); 
      return View("Index"); 
     } 

2.In Globale

 

     protected void Application_BeginRequest(object sender, EventArgs e) 
     { 
      HttpCookie cookie = HttpContext.Current.Request.Cookies["Language"]; 
      if (cookie != null && cookie.Value != null) 
      { 
       System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value); 
       System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value); 
      } 
      else 
      { 
       System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("pt"); 
       System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("pt"); 
      } 
     } 

3.In html

    <div class="dropdown pull-right"> 
 
         <button class="btn btn-link dropdown-toggle" type="button" data-toggle="dropdown"> 
 
          @Html.Label(Project.Resources.HomeTexts.Language) 
 
          <span class="caret"></span> 
 
         </button> 
 
         <ul class="dropdown-menu"> 
 
          <li>@Html.ActionLink("English", "Change", new { languageAbbrevation = "en" }, null)</li> 
 
          <li>@Html.ActionLink("Portugues", "Change", new { languageAbbrevation = "pt" }, null)</li> 
 
         </ul> 
 
        </div>

4.Create Ressourcendateien HomeTexts.en.resx HomeTexts.resx -pt Standard

5.nun die [email protected] Html.Label (Projekt.Resources.HomeTexts.Login)