婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > asp.net中mvc使用ajax提交參數的匹配問題解決探討

asp.net中mvc使用ajax提交參數的匹配問題解決探討

熱門標簽:接聽電話機器人哪有 如何用地圖標注各分公司 蓄意標記地圖標注 莆田防封電銷卡價格 察縣地圖標注 信貸電銷機器人有用嗎 廣西ai語音電銷機器人哪家好 電銷機器人適用范圍 辦理一個400電話多少錢
想到在asp.net的mvc中如果使用ajax向服務端傳遞參數時如果參數是一個類或者是個數組(或List集合)以及更復雜的對象時,服務端總是會發生取不到值的情況,當然網上也有很多解決的例子,但都是在服務端想辦法來解決的(比如將json轉換為字符串,再在服務端反序列化為一個對象),為何不能在客戶端就把這個問題搞定。

其實問題沒那么復雜,那是因為在jquery提交Array的數據時,提交的時候始終會在名稱后面加上”[]”, 問題就出在這里。另外在服務端對數組和內嵌的js對象進行解析時,需要像這樣的格式,比如數組(或List集合)在服務端需要這樣{'xxx[0]':'aaa','xxx[1]':'bbb'}的格式,而內嵌對象需要像這樣{'xxx.a':'ddd','xxx.b':'hhh'},找到問題的原因就好解決了,如果我們能將json的格式轉換為服務端了能夠識別的格式,問題豈不迎刃而解。

說干就干,直接上代碼
復制代碼 代碼如下:

//用于MVC參數適配JavaScript閉包函數
/*
使用方式如下:
$.ajax({
url: "@Url.Action("AjaxTest")",
data: mvcParamMatch("", sendData),//在此轉換json格式,用于mvc參數提交
dataType: "json",
type: "post",
success:function(result) {
alert(result.Message);
}
});
*/
var mvcParamMatch = (function () {
var MvcParameterAdaptive = {};
//驗證是否為數組
MvcParameterAdaptive.isArray = Function.isArray || function (o) {
return typeof o === "object"
Object.prototype.toString.call(o) === "[object Array]";
};
//將數組轉換為對象
MvcParameterAdaptive.convertArrayToObject = function (/*數組名*/arrName, /*待轉換的數組*/array, /*轉換后存放的對象,不用輸入*/saveOjb) {
var obj = saveOjb || {};
function func(name, arr) {
for (var i in arr) {
if (!MvcParameterAdaptive.isArray(arr[i]) typeof arr[i] === "object") {
for (var j in arr[i]) {
if (MvcParameterAdaptive.isArray(arr[i][j])) {
func(name + "[" + i + "]." + j, arr[i][j]);
} else if (typeof arr[i][j] === "object") {
MvcParameterAdaptive.convertObject(name + "[" + i + "]." + j + ".", arr[i][j], obj);
} else {
obj[name + "[" + i + "]." + j] = arr[i][j];
}
}
} else {
obj[name + "[" + i + "]"] = arr[i];
}
}
}
func(arrName, array);
return obj;
};
//轉換對象
MvcParameterAdaptive.convertObject = function (/*對象名*/objName,/*待轉換的對象*/turnObj, /*轉換后存放的對象,不用輸入*/saveOjb) {
var obj = saveOjb || {};
function func(name, tobj) {
for (var i in tobj) {
if (MvcParameterAdaptive.isArray(tobj[i])) {
MvcParameterAdaptive.convertArrayToObject(i, tobj[i], obj);
} else if (typeof tobj[i] === "object") {
func(name + i + ".", tobj[i]);
} else {
obj[name + i] = tobj[i];
}
}
}
func(objName, turnObj);
return obj;
};
return function (json, arrName) {
arrName = arrName || "";
if (typeof json !== "object") throw new Error("請傳入json對象");
if (MvcParameterAdaptive.isArray(json) !arrName) throw new Error("請指定數組名,對應Action中數組參數名稱!");
if (MvcParameterAdaptive.isArray(json)) {
return MvcParameterAdaptive.convertArrayToObject(arrName, json);
}
return MvcParameterAdaptive.convertObject("", json);
};
})();

使用方法非常簡單,看下面的例子:
首先是客戶端的代碼
復制代碼 代碼如下:

var sendData = {
"Comment": "qqq",
"Ajax1": { "Name": "sq", "Age": 55, "Ajax3S": { "Ajax3Num": 234 } },
"Ajax2S": [{ "Note": "aaa", "Num": 12, "Ajax1S": [{ "Name": "sq1", "Age": 22, "Ajax3S": { "Ajax3Num": 456 } }, { "Name": "sq2", "Age": 33, "Ajax3S": { "Ajax3Num": 789 } }] },
{ "Note": "bbb", "Num": 34, "Ajax1S": [{ "Name": "sq3", "Age": 44, "Ajax3S": { "Ajax3Num": 654 } }, { "Name": "sq4", "Age": 987 }] }]
};


$.ajax({
url: "@Url.Action("AjaxTest")",
/*
在此使用閉包函數轉換json對象,如果你的json對象自身就是個數組Array,
那么需要指定一個名稱,這個名稱對應于Action中這個數組參數的名稱像這樣
            data:mvcParamMatch(sendData,"Action中所對應的參數名稱")
*/
data: mvcParamMatch(sendData),
dataType: "json",
type: "post",
success:function(result) {
alert(result.Message);
},
error:function(a,b,c) {
}
});

然后是服務端對應客戶端json的實體類
復制代碼 代碼如下:

public class AjaxParamModels
{
public string Comment { set; get; }
public Ajax1 Ajax1 { set; get; }
public ListAjax2> Ajax2S { set; get; }
}
public class Ajax1
{
public string Name { set; get; }
public int Age { set; get; }
public Ajax3 Ajax3S { set; get; }
}
public class Ajax2
{
public string Note { set; get; }
public int Num { set; get; }
public ListAjax1> Ajax1S { set; get; }
}
public class Ajax3
{
public int Ajax3Num { set; get; }
}

然后是controller中的action代碼
復制代碼 代碼如下:

public class TestController : Controller
{
//
// GET: /Test/
public ActionResult Index()
{
return View();
}
public ActionResult AjaxTest(Models.AjaxParamModels model)
{
//在此可訪問model
return Json(new {Message = "qqqqq"});
}
}

這樣就OK了,不管你這個json對象有多少復雜都沒關系,他會自動轉換為服務端要求的格式,服務端再也不用操心了。
您可能感興趣的文章:
  • asp.net“服務器應用程序不可用” 解決方法
  • ASP.NET MVC運行出現Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法
  • ASP.NET MVC使用Ajax的輔助的解決方法
  • ASP.NET MVC中解析淘寶網頁出現亂碼問題的解決方法
  • 使用asp.net MVC4中的Bundle遇到的問題及解決辦法分享
  • ASP.NET在MVC中MaxLength特性設置無效的解決方法
  • asp.net mvc3.0安裝失敗如何解決
  • 解決asp.net mvc UpdateModel更新對象后出現null問題的方法
  • ASP.NET MVC命名空間時引起錯誤的解決方法
  • 解決Asp.net Mvc返回JsonResult中DateTime類型數據格式問題的方法

標簽:鷹潭 銅陵 延邊 益陽 儋州 阿拉善盟 平涼 張掖

巨人網絡通訊聲明:本文標題《asp.net中mvc使用ajax提交參數的匹配問題解決探討》,本文關鍵詞  asp.net,中,mvc,使用,ajax,提交,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《asp.net中mvc使用ajax提交參數的匹配問題解決探討》相關的同類信息!
  • 本頁收集關于asp.net中mvc使用ajax提交參數的匹配問題解決探討的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    五月天一区二区三区| 国产精品久久久久一区二区三区 | 中文字幕在线观看一区二区| 日韩欧美国产精品| 91麻豆精品国产91久久久久久 | 欧美日韩免费观看一区三区| 99在线精品免费| 99麻豆久久久国产精品免费| 色婷婷av一区二区三区gif| 色综合久久久久综合体| 色久综合一二码| 欧美日韩精品系列| 欧美一级艳片视频免费观看| 日韩免费福利电影在线观看| 久久久美女毛片| 国产精品女主播在线观看| 亚洲欧洲国产日本综合| 亚洲综合一区在线| 日韩精品亚洲专区| 国产一区二区福利| 91免费观看在线| 欧美日韩视频在线第一区 | 国产午夜精品久久久久久久| 欧美国产激情一区二区三区蜜月 | 免费精品99久久国产综合精品| 麻豆国产精品官网| 国产精品18久久久久久久久久久久| 国产99一区视频免费| 91玉足脚交白嫩脚丫在线播放| 色美美综合视频| 日韩精品一区二区三区老鸭窝| 久久亚洲一区二区三区四区| 亚洲天堂精品视频| 六月丁香综合在线视频| 粉嫩绯色av一区二区在线观看| 欧美综合一区二区三区| 久久嫩草精品久久久精品| 亚洲摸摸操操av| 美女高潮久久久| 一本色道a无线码一区v| 日韩一区二区免费视频| 中文字幕亚洲成人| 裸体歌舞表演一区二区| 色呦呦日韩精品| 久久蜜桃av一区二区天堂| 亚洲国产一区二区三区 | 欧美在线免费观看视频| 久久精品亚洲一区二区三区浴池| 亚洲一区二区三区激情| 丁香啪啪综合成人亚洲小说| 91精品国产福利| 亚洲伊人伊色伊影伊综合网| 粉嫩蜜臀av国产精品网站| 精品理论电影在线观看| 午夜精品一区二区三区免费视频| 成人免费视频一区二区| 日韩精品一区二区三区在线| 日日夜夜精品视频免费| 欧美视频中文字幕| 亚洲色图另类专区| 成人爱爱电影网址| 国产亚洲精久久久久久| 韩国成人在线视频| 日韩三级视频中文字幕| 偷拍亚洲欧洲综合| 欧美日韩在线不卡| 亚洲成av人片在线观看| 欧美日韩一区二区在线视频| 亚洲乱码一区二区三区在线观看| 成人在线一区二区三区| 国产欧美日韩视频在线观看| 精品亚洲国产成人av制服丝袜| 337p亚洲精品色噜噜| 亚洲不卡一区二区三区| 欧美日韩电影在线| 日韩在线一区二区三区| 日韩欧美中文字幕一区| 久久精品国产精品亚洲精品| 日韩精品一区国产麻豆| 经典三级视频一区| 久久综合九色综合97_久久久| 久久不见久久见免费视频7| 久久先锋影音av鲁色资源网| 狠狠色丁香久久婷婷综合丁香| 欧美xxx久久| 成人激情动漫在线观看| ...av二区三区久久精品| 在线视频你懂得一区| 婷婷综合五月天| 精品日韩欧美一区二区| 国产福利一区二区三区视频在线| 国产精品久久久久永久免费观看| 一本大道久久a久久综合婷婷| 一区二区日韩av| 欧美美女黄视频| 精品综合免费视频观看| 国产亚洲1区2区3区| 99久久精品国产麻豆演员表| 亚洲午夜免费电影| 久久精品一级爱片| 欧美性生活久久| 九一九一国产精品| 亚洲精品高清在线| 欧美mv日韩mv亚洲| 色噜噜狠狠成人网p站| 首页综合国产亚洲丝袜| 欧美国产一区视频在线观看| 在线精品视频一区二区三四| 精品一区二区三区视频| 综合色天天鬼久久鬼色| 日韩精品中文字幕一区二区三区 | 中文字幕中文乱码欧美一区二区| 欧美午夜在线一二页| 国产呦精品一区二区三区网站 | 欧美一区三区二区| 成人白浆超碰人人人人| 日本不卡一区二区| 亚洲欧美一区二区久久| 日韩精品一区二区三区视频播放| 色偷偷成人一区二区三区91| 蜜桃av噜噜一区| 一卡二卡欧美日韩| 国产三级精品视频| 欧美一区二区三区男人的天堂 | 亚洲风情在线资源站| 国产精品美女视频| 精品成人一区二区三区四区| 欧美美女bb生活片| 欧美日韩视频第一区| 成人sese在线| 成人激情小说乱人伦| 福利电影一区二区| 国产精品1区二区.| 国产激情偷乱视频一区二区三区| 日韩高清在线电影| 亚洲一区二区视频在线观看| 国产精品色噜噜| 中文字幕巨乱亚洲| 欧美高清一级片在线观看| 久久综合五月天婷婷伊人| 91精品国产综合久久久久久| 欧美影视一区二区三区| 色狠狠色噜噜噜综合网| 91免费版pro下载短视频| 不卡电影一区二区三区| jvid福利写真一区二区三区| 国产毛片精品国产一区二区三区| 久久99精品一区二区三区| 免费观看成人av| 久久国产精品99精品国产| 日韩精品亚洲专区| 另类中文字幕网| 精品制服美女久久| 国产真实乱对白精彩久久| 精品一区二区av| 夫妻av一区二区| 色综合久久久久久久久| 日本韩国精品一区二区在线观看| 日本道在线观看一区二区| 欧美伊人精品成人久久综合97| 欧美日本在线播放| 日韩三级伦理片妻子的秘密按摩| 日韩西西人体444www| 精品福利一二区| 国产精品看片你懂得| 亚洲精品免费播放| 婷婷综合另类小说色区| 韩国成人福利片在线播放| 岛国精品在线播放| 欧美日韩免费电影| 精品国产91乱码一区二区三区| 国产精品久久三区| 婷婷丁香激情综合| 国产在线看一区| 色哟哟国产精品| 日韩一区二区免费视频| 亚洲国产精品高清| 亚瑟在线精品视频| 国产精品99久久不卡二区| 欧美在线999| 久久女同精品一区二区| 亚洲欧美视频在线观看视频| 日韩电影免费一区| 99精品久久久久久| 91精品在线观看入口| 国产精品色噜噜| 久久精品国产99国产| 色综合久久久久久久久久久| 亚洲精品一区在线观看| 亚洲永久精品国产| 成人av资源站| 精品国产一区二区亚洲人成毛片 | 国产一区二区三区在线观看精品| 成人av免费网站| 日韩久久精品一区| 一区二区在线免费| 成人国产精品免费| 久久综合给合久久狠狠狠97色69| 亚洲一区二区三区国产| 成人激情文学综合网|