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; }

參數的轉換就正常了!

發佈了11 篇原創文章 · 獲贊 11 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章