Asp.net mvc 4 如何输出Request.CreateResponse方法的json对象
如何输出Request.CreateResponse方法的json对象 下面的代码输出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
"{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*/