Phil Haack有一篇关于如何使用JSON,数据绑定和数据验证的优秀博客文章.
输入浏览器的"同源策略安全限制".和JSONP,您使用$ .getJSON()来检索内容.
是否有内置的MVC 3方法来做到这一点,还是我需要遵循这样的帖子的建议?你可以发布内容吗?我问,因为我的同事实现了JsonPfilterAttribute以及其他工作.如果MVC 3中已存在某些内容,显然最好避免这种情况.
编辑:
总结:除访问POST变量外,一切都有效,即如何POST在上下文中访问变量?(注释在代码的最后部分标记)
我选择使用这种格式来调用服务器:
$.ajax({
type: "GET",
url: "GetMyDataJSONP",
data: {},
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonpCallback: "randomFunctionName"
});
Run Code Online (Sandbox Code Playgroud)
产生这种反应:
randomFunctionName([{"firstField":"111","secondField":"222"}]);
Run Code Online (Sandbox Code Playgroud)
如果我使用的话,这一切都很有效GET.但是,我仍然无法将其作为一个工作POST.这是Nathan Bridgewater 在这里发布的原始代码.此行找不到POST数据:
context.HttpContext.Request["callback"];
Run Code Online (Sandbox Code Playgroud)
要么我应该Form以某种方式访问,要么MVC数据验证器正在剥离POST变量.
如何context.HttpContext.Request["callback"];编写访问POST变量或MVC是否出于某种原因剥离这些值?
namespace System.Web.Mvc
{ public class JsonpResult : ActionResult
{ public JsonpResult() {}
public Encoding ContentEncoding { get; set; }
public string ContentType { get; set; …Run Code Online (Sandbox Code Playgroud)