ASP.NET MVC @ Html.RenderAction的不同内容类型

时间:2012-08-13 06:29:48

标签: json asp.net-mvc-4

<body>我试图

结束之前
<script type="text/javascript">
    @{ Html.RenderAction("RenderData4JS", "Helper"); }
</script>

哪个返回Json(Data4JS)。基本上它只输出Json,所以我可以使用jQuery访问它。

当我这样做时,整个网页,然后显示HTML源(必须更改整个网站的内容类型)。

我怎样才能解决这个问题,还是有其他办法? (我不想要AJAX)

2 个答案:

答案 0 :(得分:1)

好的,我知道怎么做,(很优雅)

//在你的ActionResult Action

return Content(GlobalHelper.ObjectToJson("GeneralData", Data4JS.Get()));

//在某个Utility类中:

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) + "}";
        }

答案 1 :(得分:0)

您可以将该操作的结果导入某个对象(“可能是一个字符串”),并将其与您用作该视图的模型的对象一起返回。在您的脚本部分中,您可以传入该变量。

<script type="text/javascript">
var x =  @Model.test
...Do whatever you need with the test string
</script>

我不建议这样做,我认为你最好用JQuery进行ajax调用