2016-03-23 4 views
0

私はdinamically Webページを翻訳しようとしています。EXTNET MVC。ストアを使用してページにデータを送信する

ウェブはMVCとEXTNETフレームワークで行われます。

私はウェブ上の店舗を使用しています。私はX()にロードしようとしています。リソースファイルの情報を保存します。

ウェブを読み込むと、ストアはデータ(キー、値)付きの辞書を作成するアクションを呼び出します。 それから、リスナーでJavaScript関数を呼び出します。 しかし、このJavaScript関数では、私は値で配列を見つけることはありません。

CSHTMLのコードは次のとおり

@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")) 
         ) 
       ); 
     } 
     ) 
    ) 

方法/ extnet /翻訳のための制御コード:

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); 
    } 

そして、どこで問題があります。スクリプトJS:

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

オブジェクトgridRecordsは、項目を1つだけ持っている、しかし、私は行動のstoreresultに12以上を送信します。

コードに関する問題についてのご意見はありますか? cshtmlにさらにパラメータが必要ですか?

スクリプトをデバッグすると、私が持っているレコードの数で変数合計数を見ることができますが、どこに配列があるのか​​わかりません。

私は、次の例のようにやろうとしています: http://sodeve.net/2011/10/how-to-enable-multi-language-translations-in-ext-net-mvc-part-2/

をしかし、それはCSHTMLではなく、すべての私のCSHTMLコードが正しいと例のようなものである場合、私は知りません。

答えて

0

前のコードはすべて正しいです。

プロジェクトを再構築し、完璧に作業します。

ご不明な点がありましたら、

関連する問題