Json 不同内容类型的ASP.NET MVC@Html.RenderAction
就在我的Json 不同内容类型的ASP.NET MVC@Html.RenderAction,json,asp.net-mvc-4,Json,Asp.net Mvc 4,就在我的结束之前,我正在尝试 <script type="text/javascript"> @{ Html.RenderAction("RenderData4JS", "Helper"); } </script> @{Html.RenderAction(“RenderData4JS”,“Helper”);} 返回Json(Data4JS)。基本上,它只输出Json,所以我可以使用jQuery访问它 当我这样做时,整个网页,然后显示HTML源代码(必须改变整
结束之前,我正在尝试
<script type="text/javascript">
@{ Html.RenderAction("RenderData4JS", "Helper"); }
</script>
@{Html.RenderAction(“RenderData4JS”,“Helper”);}
返回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>
var x=@Model.test
…对测试字符串执行任何需要的操作
但是我不建议这样做,我认为最好使用JQuery调用ajax,我喜欢这个选项,因为您可以在请求生命周期的任何时候(通过在会话中存储)将动态属性附加到对象,然后在身体关闭Json之前,让JS获得一个漂亮的小对象来处理,而不必在一个肮脏的ajax调用中乱来