我正在努力翻译网页。
使用MVC和EXTNET框架完成Web。
我在网上使用商店。我正在尝试加载到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 / Translate:
的控制器代码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只有一个temtem,但我发送了12个或更多的动作。
有关代码问题的任何想法? 需要更多参数进入cshtml吗?
解压缩脚本,我可以看到变量总数和我拥有的记录数,但我不知道数组在哪里。
我试图像这样做: http://sodeve.net/2011/10/how-to-enable-multi-language-translations-in-ext-net-mvc-part-2/
但它不是在cshtml中,我不知道我的所有cshtml代码是否正确并且像示例一样。
答案 0 :(得分:0)
确定。
以前的所有代码都是正确的。
只重建项目,并且工作完美。
对此问题感到抱歉。