亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁(yè) > 知識(shí)庫(kù) > asp.net中mvc使用ajax提交參數(shù)的匹配問題解決探討

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

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

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

說干就干,直接上代碼
復(fù)制代碼 代碼如下:

//用于MVC參數(shù)適配JavaScript閉包函數(shù)
/*
使用方式如下:
$.ajax({
url: "@Url.Action("AjaxTest")",
data: mvcParamMatch("", sendData),//在此轉(zhuǎn)換json格式,用于mvc參數(shù)提交
dataType: "json",
type: "post",
success:function(result) {
alert(result.Message);
}
});
*/
var mvcParamMatch = (function () {
var MvcParameterAdaptive = {};
//驗(yàn)證是否為數(shù)組
MvcParameterAdaptive.isArray = Function.isArray || function (o) {
return typeof o === "object"
Object.prototype.toString.call(o) === "[object Array]";
};
//將數(shù)組轉(zhuǎn)換為對(duì)象
MvcParameterAdaptive.convertArrayToObject = function (/*數(shù)組名*/arrName, /*待轉(zhuǎn)換的數(shù)組*/array, /*轉(zhuǎn)換后存放的對(duì)象,不用輸入*/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;
};
//轉(zhuǎn)換對(duì)象
MvcParameterAdaptive.convertObject = function (/*對(duì)象名*/objName,/*待轉(zhuǎn)換的對(duì)象*/turnObj, /*轉(zhuǎn)換后存放的對(duì)象,不用輸入*/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("請(qǐng)傳入json對(duì)象");
if (MvcParameterAdaptive.isArray(json) !arrName) throw new Error("請(qǐng)指定數(shù)組名,對(duì)應(yīng)Action中數(shù)組參數(shù)名稱!");
if (MvcParameterAdaptive.isArray(json)) {
return MvcParameterAdaptive.convertArrayToObject(arrName, json);
}
return MvcParameterAdaptive.convertObject("", json);
};
})();

使用方法非常簡(jiǎn)單,看下面的例子:
首先是客戶端的代碼
復(fù)制代碼 代碼如下:

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")",
/*
在此使用閉包函數(shù)轉(zhuǎn)換json對(duì)象,如果你的json對(duì)象自身就是個(gè)數(shù)組Array,
那么需要指定一個(gè)名稱,這個(gè)名稱對(duì)應(yīng)于Action中這個(gè)數(shù)組參數(shù)的名稱像這樣
            data:mvcParamMatch(sendData,"Action中所對(duì)應(yīng)的參數(shù)名稱")
*/
data: mvcParamMatch(sendData),
dataType: "json",
type: "post",
success:function(result) {
alert(result.Message);
},
error:function(a,b,c) {
}
});

然后是服務(wù)端對(duì)應(yīng)客戶端json的實(shí)體類
復(fù)制代碼 代碼如下:

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代碼
復(fù)制代碼 代碼如下:

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

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

標(biāo)簽:鷹潭 銅陵 延邊 益陽(yáng) 儋州 阿拉善盟 張掖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net中mvc使用ajax提交參數(shù)的匹配問題解決探討》,本文關(guān)鍵詞  asp.net,中,mvc,使用,ajax,提交,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《asp.net中mvc使用ajax提交參數(shù)的匹配問題解決探討》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于asp.net中mvc使用ajax提交參數(shù)的匹配問題解決探討的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    一级毛片视频播放| 久久国产精品永久免费网站| 国产视频久久久久| 亚洲女初尝黑人巨高清在线观看| 成人免费观看男女羞羞视频| 台湾毛片| 欧美电影免费看大全| 99久久精品费精品国产一区二区| 国产一区二区高清视频| 91麻豆精品国产综合久久久| 欧美激情一区二区三区视频 | 日韩av片免费播放| 日韩女人做爰大片| 国产一区免费观看| 成人免费高清视频| 久久精品成人一区二区三区| 亚洲www美色| 国产国产人免费视频成69堂| 久草免费在线视频| 国产成人啪精品| 一本伊大人香蕉高清在线观看| 黄视频网站在线观看| 久草免费在线色站| 97视频免费在线| 高清一级毛片一本到免费观看| 国产不卡精品一区二区三区| 欧美日本国产| 欧美a级片视频| 可以在线看黄的网站| 99热热久久| 欧美一级视| 久草免费资源| 可以免费在线看黄的网站| 香蕉视频亚洲一级| 精品视频一区二区三区免费| 香蕉视频三级| 午夜激情视频在线播放| 99久久精品国产高清一区二区| 欧美一级视频免费观看| 国产欧美精品| 免费国产在线视频| 久久久久久久免费视频| 欧美激情一区二区三区中文字幕| 九九精品影院| 天天色色网| 精品视频在线观看免费| 香蕉视频三级| 国产网站在线| 精品国产一区二区三区久久久蜜臀| 一级女性全黄生活片免费| 成人影院一区二区三区| 欧美日本免费| 精品在线视频播放| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 国产麻豆精品免费视频| 在线观看成人网 | 精品国产三级a| 欧美a级v片不卡在线观看| 久久精品免视看国产明星| 精品国产三级a| 精品国产亚洲一区二区三区| 黄视频网站在线看| 国产亚洲精品aaa大片| 台湾美女古装一级毛片| 日韩中文字幕在线观看视频| a级精品九九九大片免费看| 九九免费高清在线观看视频| 国产高清在线精品一区a| 99久久精品国产免费| 99久久精品国产高清一区二区 | 色综合久久手机在线| 亚洲 国产精品 日韩| 九九久久国产精品| 色综合久久久久综合体桃花网| 欧美电影免费看大全| 欧美a级成人淫片免费看| 日本伦理片网站| 免费国产在线观看| 麻豆网站在线看| 亚洲www美色| 999精品视频在线| 欧美激情一区二区三区在线| 91麻豆精品国产高清在线| 日本免费乱理伦片在线观看2018| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 99久久精品国产片| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 一级毛片视频播放| 一级毛片视频播放| 可以在线看黄的网站| 九九久久99| 黄色福利片| 香蕉视频三级| 国产国语在线播放视频| 97视频免费在线观看| 精品久久久久久中文字幕2017| 久久99青青久久99久久| 在线观看导航| 亚洲第一色在线| 青青青草影院 | 99色吧| 日本在线不卡视频| 天天色色网| 国产成人精品综合| 久久国产影院| 成人av在线播放| 久久国产精品自由自在| 久久久久久久久综合影视网| 国产网站免费| 天天做日日爱| 中文字幕一区二区三区 精品| 99久久精品国产高清一区二区 | 久久国产精品永久免费网站| 亚洲第一色在线| 欧美激情影院| 香蕉视频久久| 国产麻豆精品| 999久久狠狠免费精品| 天天色色色| 色综合久久手机在线| 久久久成人网| 99热精品在线| 亚洲 欧美 成人日韩| 日韩av片免费播放| 久久国产精品永久免费网站| 91麻豆精品国产综合久久久| 91麻豆精品国产自产在线| 99色精品| 麻豆系列国产剧在线观看| 成人免费一级纶理片| 免费国产在线观看| 亚洲爆爽| 日韩在线观看免费完整版视频| 一级毛片视频在线观看| 久久国产精品只做精品| 精品国产一区二区三区久久久蜜臀| 欧美一级视| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日本伦理黄色大片在线观看网站| 91麻豆精品国产自产在线| 久久国产影视免费精品| 97视频免费在线观看| 九九精品久久| 午夜在线观看视频免费 成人| 欧美一级视| 色综合久久手机在线| 国产原创视频在线| 美国一区二区三区| 精品久久久久久综合网| 一本伊大人香蕉高清在线观看| 精品国产一区二区三区久久久蜜臀 | 一级毛片视频免费| 欧美激情一区二区三区视频高清| 亚洲 欧美 成人日韩| 国产视频在线免费观看| 午夜欧美福利| 欧美国产日韩精品| 国产麻豆精品免费视频| 99久久网站| 免费国产在线观看| 日韩一级黄色| 日韩av东京社区男人的天堂| 欧美一级视频免费观看| 一a一级片| 天天做人人爱夜夜爽2020毛片| 久久久成人网| 国产视频久久久久| 精品国产一区二区三区久| 毛片的网站| 日本特黄特黄aaaaa大片| 日韩男人天堂| 国产一区二区精品在线观看| 欧美爱色| 国产不卡在线看| 日韩中文字幕在线观看视频| 国产伦久视频免费观看 视频| 成人免费观看网欧美片| 免费一级生活片| 亚洲女人国产香蕉久久精品| 精品国产亚一区二区三区| 99久久精品国产高清一区二区 | 成人高清视频在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩字幕在线| 青青久久精品国产免费看| 日韩在线观看免费完整版视频| 午夜在线亚洲| 九九干| 欧美另类videosbestsex久久| 欧美激情一区二区三区在线| 成人免费网站久久久| 青草国产在线观看| 日韩男人天堂| 国产91精品一区二区| 精品视频一区二区三区| 四虎影视库| 99色吧| 九九久久99综合一区二区| 日日日夜夜操| 色综合久久手机在线|