就在我的结束之前,<body>我正在尝试
<script type="text/javascript">
@{ Html.RenderAction("RenderData4JS", "Helper"); }
</script>
返回 Json(Data4JS) 。基本上它只是输出 Json,所以我可以用 jQuery 访问它。
当我这样做时,整个网页,然后显示 HTML 源代码(必须更改整个网站的内容类型)。
我该如何解决这个问题,或者有其他方法吗?(我不想 AJAX)
就在我的结束之前,<body>我正在尝试
<script type="text/javascript">
@{ Html.RenderAction("RenderData4JS", "Helper"); }
</script>
返回 Json(Data4JS) 。基本上它只是输出 Json,所以我可以用 jQuery 访问它。
当我这样做时,整个网页,然后显示 HTML 源代码(必须更改整个网站的内容类型)。
我该如何解决这个问题,或者有其他方法吗?(我不想 AJAX)
好的,我想出了怎么做,(足够优雅)
//在你的 ActionResult 动作中
return Content(GlobalHelper.ObjectToJson("GeneralData", Data4JS.Get()));
//在一些实用程序类中:
public static string ObjectToJson(string objectName, object o)
{
System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
return "{\"Data4JS\":" + jsonSerializer.Serialize(o) + "}";
}
您可以将该操作的结果放入某个对象(“可能是一个字符串”)中,并将其与您用作该视图的模型的对象一起返回。在您的脚本部分中,您可以传入该变量。
<script type="text/javascript">
var x = @Model.test
...Do whatever you need with the test string
</script>
但是我不推荐这个,我认为你最好用 JQuery 进行 ajax 调用