使用jQuery.Ajax向ASP.NET MVC控制器Post数据
jQuery自帶了Ajax的函數,你可以使用它從遠程服務器下載網頁,但問題是,大部分Ajax都是通過GET這種方式與遠程服務器交互的。
?
但如果你想通過Ajax向遠程服務器傳遞數據呢?當然jQuery.Ajax里面有一個參數data參數允許你傳遞發送到服務器的數據。?但問題是,這個數據默認是采用GET方式,即附加在請求字符串(URL QueryString)后面實現的,也就是說你會受到URL最大不能超過4KB的限制。而如果你嘗試用POST方法向ASP.NET MVC控制器發送數據的時候,在控制器一端,你會發現數據沒有傳入到控制器上。比如說下面的jQuery代碼:
?
點擊提交后,在控制器一端根本沒有被調用,這是因為雖然你的jQuery代碼指明了數據類型是json,但是數據格式并不是json格式的。你需要將對象序列化成json格式,使用json2.js就可以做這個事情,下載地址是:http://www.json.org/js.html?。
代碼如果你在服務器的控制器一端,發生數據沒有被正確地反序列化(如果你用ASP.NET MVC 3 RC之前的版本應該就會碰到這個問題)。這是因為雖然客戶端指明了數據是json對象,但是,服務器MVC路由器不知道如何解釋這個對象,要在服務器端加上json反序列化支持,請在global.asax.cs的Application_Start()函數里,添加下面一行代碼(表示你要支持json反序列化):
ValueProviderFactories.Factories.Add(new?JsonValueProviderFactory());
在ASP.NET MVC 3 RC以后的版本就不需要添加這一行代碼了。
本文轉自 donjuan 博客園博客,原文鏈接: ?http://www.cnblogs.com/killmyday/archive/2010/11/18/1880643.html?,如需轉載請自行聯系原作者
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的使用jQuery.Ajax向ASP.NET MVC控制器Post数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: weblogic管理2 - 创建并启动一
- 下一篇: ORA-07445导致实例崩溃的解决【T