asp.net mvc框架中,ajax传递json对象,并自动转换成参数对象的方法

我们平时使用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; }

参数的转换就正常了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值