Asp.net mvc 4 如何输出Request.CreateResponse方法的json对象

Asp.net mvc 4 如何输出Request.CreateResponse方法的json对象,asp.net-mvc-4,Asp.net Mvc 4,如何输出Request.CreateResponse方法的json对象 下面的代码输出json字符串 "{RowCount:15}" ,字符串不是json ojbect,应该使用javscript的eval()方法转换成json对象,我希望服务器端直接返回json对象, 它应该会回来 {RowCount:15} 这是一个json对象 代码 public class PagedDataAttribute : ActionFilterAttribute { public ove

如何输出Request.CreateResponse方法的json对象

下面的代码输出json字符串

    "{RowCount:15}"
,字符串不是json ojbect,应该使用javscript的eval()方法转换成json对象,我希望服务器端直接返回json对象, 它应该会回来

{RowCount:15}
这是一个json对象

代码

public class PagedDataAttribute : ActionFilterAttribute
{

    public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
    {
        string jsonRowCount = "{RowCount:10}";
        actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(System.Net.HttpStatusCode.OK, jsonRowCount,System.Net.Http.Formatting.JsonMediaTypeFormatter.DefaultMediaType);
    }

}

使用匿名对象而不是字符串:

public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
    var rowCount = new { RowCount = 10 };
    actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(
        HttpStatusCode.OK,
        rowCount,
        JsonMediaTypeFormatter.DefaultMediaType
    );
}

天哪,莫利。对于未来的读者和搜索者,我(错误地)这样做了:JObject jo=/*一些创建JObject/string outputJsonContent=jo.ToString(Formatting.None)的代码;HttpResponseMessage resp=req.CreateResponse(HttpStatusCode.OK,outputJsonContent,新的JsonMediaTypeFormatter());我应该这样做:(正如这个答案所说)JObject jo=/一些创建JObject/httpresponsemessageresp=req.CreateResponse的代码(HttpStatusCode.OK,jo,new-JsonMediaTypeFormatter());/FYI#区域程序集Newtonsoft.Json,版本=9.0.0.0:Newtonsoft.Json.Linq.JObject*/