2016-03-23 6 views
0

Ich versuche, eine Webseite dynamisch zu übersetzen.EXTNET MVC. Verwenden Sie einen Store, um Daten an eine Seite zu senden

Das Web ist mit MVC und EXTNET-Framework fertig.

Ich verwende ein Geschäft im Internet. Ich versuche, in das X() zu laden. Speichern Sie die Informationen der Ressourcendatei.

Beim Laden des Webs ruft der Speicher eine Aktion auf, die ein Wörterbuch mit den Daten (Schlüssel, Wert) erstellt. Und dann, mit einem Listener, rufe ich eine JavaScript-Funktion. Aber auf dieser JavaScript-Funktion finde ich das Array mit den Werten nicht.

Der Code des cshtml ist:

@using (Html.BeginForm()) 
{ 
    var X = Html.X(); 
    @(
    X 
    .Store() 
    .ID("dsTranslate") 
    .AutoLoad(true) 
    .Fields(field => 
     { 
      field.Add("key"); 
      field.Add("value"); 
     }   
    ) 
    .Listeners(lis=>lis.Load.Fn="TranslateLoaded") 
    .Proxy(p => 
     { 
      p.Add(
       X.AjaxProxy() 
       .Url("/extnet/Translate") 
       .Reader(
         reader => reader.Add(X.JsonReader().RootProperty("data").TotalProperty("total").IDProperty("key")) 
         ) 
       ); 
     } 
     ) 
    ) 

Der Code-Controller für Verfahren/extnet/Übersetzen:

public StoreResult Translate() 
{ 

     var lang = "es-ES"; 

     if (Request.Cookies.Count > 0) 
      lang = Request.Cookies["cultureCode"].Value; 


     CultureInfo cult = Thread.CurrentThread.CurrentCulture; 

     try 
     { 
      cult = new CultureInfo(lang); 
     } 
     catch (Exception ex) { } 

     ResourceSet res = Resources.ResourceAdministracion.ResourceManager.GetResourceSet(cult, true, false); 
     IDictionaryEnumerator trav = res.GetEnumerator(); 
     Dictionary<string, string> dict = new Dictionary<string, string>(); 

     while (trav.MoveNext()) 
     { 
      if (trav.Key.ToString().Length > 2) 
       dict.Add(trav.Key.ToString(), trav.Value.ToString()); 
     } 

     var q = from c in dict 
       select new { key = c.Key, value = c.Value }; 

     return new StoreResult(q, dict.Count); 
    } 

und wo ich das Problem. Das Skript js:

var TranslateLoaded = function (objGrid, gridRecords, objOptions) { 
     for (var i = 0; i < gridRecords.length; i++) { 
      alert('Clicked'); 
     } 
} 

Das Objekt gridRecords hat nur ein Element, aber ich sende 12 oder mehr in die storeresult der Aktion.

Irgendeine Idee über das Problema mit dem Code? Benötigen Sie weitere Parameter in den cshtml?

Debuggen des Skripts, ich kann die Gesamtzahl der Variablen mit der Anzahl der Datensätze sehen, die ich habe, aber ich weiß nicht, wo das Array ist.

Ich versuche, wie in diesem Beispiel zu tun: http://sodeve.net/2011/10/how-to-enable-multi-language-translations-in-ext-net-mvc-part-2/

Aber es ist nicht in cshtml, und ich weiß nicht, ob all mein cshtml Code korrekt und wie das Beispiel.

Antwort

0

Ok.

Alle vorherigen Code ist korrekt.

Nur das Projekt neu erstellen und perfekt arbeiten.

Sorry über die Frage.

Verwandte Themen