Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ViewData列表中的JavaScript数组-Razor_Javascript_C#_Asp.net Mvc_Razor_Response.write - Fatal编程技术网

ViewData列表中的JavaScript数组-Razor

ViewData列表中的JavaScript数组-Razor,javascript,c#,asp.net-mvc,razor,response.write,Javascript,C#,Asp.net Mvc,Razor,Response.write,我在MVC3 aspx中使用以下命令从包含列表的ViewData生成数组: <script runat="server"> void RenderJavascriptHashArray (string listName, string hashName) { IEnumerable<KeyValuePair<int, string>> pairs = this.ViewData[listName] a

我在MVC3 aspx中使用以下命令从包含列表的ViewData生成数组:

<script runat="server">
      void RenderJavascriptHashArray (string listName, string hashName)
            {
            IEnumerable<KeyValuePair<int, string>> pairs = this.ViewData[listName] as IEnumerable<KeyValuePair<int, string>>;

            Response.Write("var " + hashName + " = new Array();\n");
            foreach (KeyValuePair<int, string> pair in pairs)
                {
                Response.Write(hashName + "[" + pair.Key.ToString() + "] = \"" + pair.Value + "\";\n");
                }
            }
</script>

<script>
   <% this.RenderJavascriptHashArray("InfoURLs", "InfoURLs"); %>
</script>

在MVC5 Razor中,由于响应,数组显示在屏幕上。Write,是否有其他方法!非常感谢您的建议。

试试这个。如果您在剃须刀中,我认为您不需要回复

@Html.Raw(RenderJavascriptHashArray("InfoURLs", "InfoURLs"))
@{
            string RenderJavascriptHashArray (string listName, string hashName)
            {

              IEnumerable<KeyValuePair<int, string>> pairs = this.ViewData[listName] as IEnumerable<KeyValuePair<int, string>>;
                  System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
                  sb.Append("var " + hashName + " = new Array();\n");
               foreach (KeyValuePair<int, string> pair in pairs)
                {
                sb.Append(hashName + "[" + pair.Key.ToString() + "] = \"" + pair.Value + "\";\n");
                }
                return sb.ToString();
            }
}

非常感谢。使用Html.Raw在屏幕上打印数组。在调试时,我可以看到阵列。但是,如果尝试从另一个JavaScript函数(例如alertInfoURls[1])访问它,则未定义我获取InfoURLs!