在Sencha Touch2開發中,經常要使用ajax與後臺服務進行傳參(本文使用WCF搭建服務),而其中參數名問題顯得尤爲重要。
比如WCF服務函數爲:
public Result GetItemResult(int intTaskCode, int intItemCode, string strEquipCode)
{
return TaskExec.GetItemResult(intTaskCode,intItemCode, strEquipCode);
}
其中接收了三個參數,而我們在表示端進行參數傳遞時必須保證參數名和順序與以上函數的對應一致:
params:Ext.encode({
intTaskCode:123,
intItemCode:'456'',
strEquipCode:'789',
}),
如果把其中第四行的strEquipCode改爲strEquipCod就會出錯!
細心的人肯定發現了其中第二個參數intItemCode應該爲int型的,爲什麼Sencha可以傳遞加了引號的string型串?
PS:(1)這是因爲ajax在傳遞數據時基本上都是按照json串的形式來的,不區分數據類型,但是你要保證如果服務端是int的話,你傳的數據要能轉換成int。比如intItemCode如果傳遞的是‘abc’就不行了,因爲WCF無法轉換爲int型。
(2)傳遞單個參數的話可以直接寫成:
params:Ext.encode(data);//var data=1
也就是說此時可以省去參數名。