【问题标题】:Get a resource string based on javascript value根据javascript值获取资源字符串
【发布时间】:2013-10-03 03:50:17
【问题描述】:

有没有可能完成这样的事情?

<script type="text/javascript">
function getValues( keysArray ) {
    var valuesArray = new Array(keysArray.length);
    for (var i = 0; i < keysArray.length; i++) {
        valuesArray[i] = @this.LocalResources(keysArray[i]);
    }
    return valuesArray;
}

【问题讨论】:

  • 你试图从服务器请求什么样的资源?

标签: c# asp.net-mvc-4 razor


【解决方案1】:

getValues 函数将在浏览器上执行。 Razor 将在页面发送到浏览器之前执行。这样做是行不通的。

如果您想在服务器上调用LocalResources 方法,您可以公开一个控制器操作并从客户端执行一个ajax 请求。

在浏览器上可能是这样的:

Javascript

 function getValues( keysArray ) {
 $.ajax({
   url: "/Controller/getValues",
   type: "POST",
   dataType: "json",
   contentType: "application/json; charset=utf-8",
   async: true,
   data: JSON.stringify({ "keysArray" : keysArray }),
   success: function (result) {
       //result obj is your array of resources
 }

});

MVC 控制器

public JSONResult getValues(object keysArray)
{
    ///Build respurce array here
}

【讨论】:

  • 感谢您的解释和代码示例,这似乎正是我所需要的。然后我会用HttpContext.GetLocalResourceObject() 获得资源吗?如果我的资源文件位于localhost:123456/Views/Shared/Asd/App_LocalResources/MyPage.cshtml.resx,我的虚拟路径是什么?
  • 当然可以。您获取每个资源的服务器端调用类似于HttpContext.GetLocalResourceObject("~/Views/Shared/Asd/App_LocalResources/MyPage.cshtml", KeyString)
  • 我不断收到此错误:The resource class for this page was not found. Please check if the resource file exists and try again.(无论路径末尾是否有.resx)。
  • 在这里从臀部拍摄,但看着this page,虚拟路径可能是/Views/Shared/Asd/App_LocalResources/MyPage.cshtml.resx 删除~
  • 不幸的是不起作用。尝试将.resx~ 一起删除,但无济于事,尽管错误消息中的for this page 字样有些令人困惑...
【解决方案2】:
  • Ajax 请求,或;
  • 在页面中加载必要的资源键列表,然后通过 JS 访问它们。

【讨论】:

  • +1:将所有资源字符串发送到页面是有用的选项(即,如果客户端代码需要的不仅仅是特定字符串)。
  • 我在使用GetLocalResourceObject 时遇到问题,所以我想尝试第二种方法,但我不确定如何完成它。 “在页面中加载列表”是指将它们放入隐藏的spans 中,然后在需要时获取它们的内部 HTML/访问它们的 ID?
  • 我的意思是把它放在一个 JavaScript 对象/array-2-dim(键/值)或由分隔符分隔的隐藏字段中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多