mvc前端给后端传对象
我们平时使用asp.net mvc的时候,服务器端可以自动把请求的变量转换成参数的变量。 如果要调用 AccountController 里的
public ActionResult CheckLogin(string username, string pwd)
action,那我们只需要在jquery的ajax里写上
var param = {}; param.username = "hello"; param.pwd = "word"; $.post("Account", param);
但是,接下来就由问题来了,我们到底如何传递像Model 这样的对象? 我们在开发asp.net mvc程序的时候,经常会编写edit页面和使用updateXXX的action,并通过传递model参数来进行数据更新。这时候我们就会想,能不能直接把view页面修改后的model对象给传递回去Controller。答案是可以的,具体的做法是这样…… 首先,假设我们要调用的action是:
public ActionResult SaveAdd(Userinfo model)
然后,在view上写javascript:
var param = {};
param["model.username"]="someone";
param["model.fullname"]="someone‘s fullname";
param["model.pwd"]="password";
$.post("SaveAdd", param);
这样,我们就可以在服务器端自动把请求转换成 Userinfo对象了,但是,我最初的时候发现参数怎么传都还是null……调试了一个下午,终于给我发现了问题的所在…… 我定义了 Userinfo类的成员变量
public string username;
public string fullname;
public string pwd;
这样是不行的…… 最后,我把成员变量改成属性:
public string username { get; set; }
public string fullname { get; set; }
public string pwd { get; set; }
参数的转换就正常了!
转发自http://blog.csdn.net/zengweiqiang/article/details/7354006
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。