大佬教程收集整理的这篇文章主要介绍了ASP.NET MVC如何将JSON对象从View传递到Controller作为参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
随着MVC 3的到来,不再需要这种方法,因为它将自动处理-http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3 -prevIEw-1.aspx
您可以使用以下ObjectFilter:
public class ObjectFilter : ActionFilterattribute {
public String Param { get; set; }
public Type Roottype { get; set; }
public overrIDe voID OnActionExecuTing(ActionExecuTingContext filterContext) {
if ((filterContext.httpContext.@R_874_10613@est.ContentType ?? String.Empty).Contains("application/Json")) {
object o =
new DataContractJsonserializer(RoottypE).Readobject(filterContext.httpContext.@R_874_10613@est.inputStream);
filterContext.ActionParameters[Param] = o;
}
}
}
然后可以将其应用于您的控制器方法,如下所示:
[ObjectFilter(Param = "postdata", Roottype = typeof(ObjectToserializeto))]
public JsonResult ControllerMethod(ObjectToserializeto postdata) { ... }
因此,基本上,如果帖子的内容类型是“ application / Json”,则它将生效,并将值映射到您指定的类型的对象。
我有一个复杂的JSON对象,该对象没有任何问题即可发送到View(如下所示),但是当通过AJAX调用将数据序列化回.NET对象时,我无法弄清楚如何将该数据序列化回.NET对象。各个部分的详细信息如下。
var ObjectA = {
"Name": 1,"StarTing": new Date(1221644506800),"Timeline": [
{
"StartTime": new Date(1221644506800),"GoesFor": 200
},{
"StartTime": new Date(1221644506800),"GoesFor": 100
}
]
};
我不确定如何将该对象传递给Controller方法,下面有此方法,其中Timelines对象使用Properties镜像上述JS对象。
public JsonResult Save(Timelines person)
我正在使用的jQuery是:
var encoded = $.toJSON(SessionschedulE);
$.ajax({
url: "/Timeline/Save",type: "POST",dataType: 'json',data: encoded,contentType: "application/json; charset=utf-8",beforeSend: function() { $("#saveStatus").html("Saving").show(); },success: function(result) {
alert(result.Result);
$("#saveStatus").html(result.Result).show();
}
});
我还看到了使用’JsonFilter’手动反序列化JSON的参考,但是我想知道是否有一种方法可以通过ASP.NET
MVC来实现。或以这种方式传递数据的最佳实践是什么?
以上是大佬教程为你收集整理的ASP.NET MVC如何将JSON对象从View传递到Controller作为参数全部内容,希望文章能够帮你解决ASP.NET MVC如何将JSON对象从View传递到Controller作为参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。