Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
通过html中的JSON将paranter从asp.net传递到java脚本_Json_Asp.net Mvc 2 - Fatal编程技术网

通过html中的JSON将paranter从asp.net传递到java脚本

通过html中的JSON将paranter从asp.net传递到java脚本,json,asp.net-mvc-2,Json,Asp.net Mvc 2,我想在HTML响应中传递一些JSON对象,并在客户机中评估它。我在服务器中使用了fallowing代码: TagBuilder tag = new TagBuilder("script"); tag.Attributes.Add("Id", id); tag.Attributes.Add("type", "text/html"); tag.SetInnerText(new JavaScriptSerializer().Se

我想在HTML响应中传递一些JSON对象,并在客户机中评估它。我在服务器中使用了fallowing代码:

 TagBuilder tag = new TagBuilder("script");
            tag.Attributes.Add("Id", id);
            tag.Attributes.Add("type", "text/html");
            tag.SetInnerText(new JavaScriptSerializer().Serialize(content));
            return MvcHtmlString.Create(tag.ToString());
我尝试在客户机中评估它:

var p = eval("(" + pEl.html() + ")");
但由于编码的原因,它不起作用,所以我必须通过以下方式对其进行解码:

var p = eval("(" + pEl.html().replace(/"/g,"'") + ")");
但它似乎不太令人愉快,我试图用它来代替服务器端,但它保持不变。 有解决问题的办法吗? 有更好的方法可以在HTML响应中传递JSON。 谢谢

试试这个:

TagBuilder tag = new TagBuilder("script");
tag.Attributes.Add("type", "text/javascript");
string json = new JavaScriptSerializer().Serialize(content);
tag.InnerHtml = "var p = " + json + ";";
return MvcHtmlString.Create(tag.ToString());

这声明了一个名为
p
的全局javascript变量,其中包含可以在脚本中随处使用的json对象,您不必担心替换引号或调用
eval
。您可以使用
id
参数命名此变量,例如,如果您不想将其命名为
p

不,它不工作,它的呈现为“as”,因此IE不接受它作为JavaScript。正确,对不起,请查看我的更新,使用
InnerHtml
as
SetInnerText