【发布时间】:2016-03-23 13:45:39
【问题描述】:
我正在尝试动态翻译网页。
Web 使用 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/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 只有一个项目,但我将 12 个或更多发送到操作的存储结果中。
对代码的问题有任何想法吗? 需要更多参数到 cshtml 中吗?
调试脚本,我可以看到变量总计数和我拥有的记录数,但我不知道数组在哪里。
我正在尝试这样做: http://sodeve.net/2011/10/how-to-enable-multi-language-translations-in-ext-net-mvc-part-2/
但是cshtml中没有,不知道我所有的cshtml代码是否正确,和例子一样。
【问题讨论】:
标签: c# asp.net-mvc-4 extjs ext.net