/派生JsonpResult子类public class JsonpResult : ActionResult
{
public Object Data { get; set; }
public JsonpResult(Object data)
{
Data = data;
}
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.ContentType = "text/html; charset=utf-8";
var js = new System.Web.Script.Serialization.JavaScriptSerializer();
//注意这里
String JSONP = context.HttpContext.Request.QueryString["JSONP"];
if (String.IsNullOrEmpty(JSONP))
context.HttpContext.Response.Write(js.Serialize(Data));
else
context.HttpContext.Response.Write(String.Format("{0}({1})", JSONP, js.Serialize(Data)));
}
}
//如果是跨域请求,那么这里的JSONP=?是必须的。(详见上面的派生子类)
$.getJSON("http://www.you.com?JSONP=?", function (result) {
});