Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Sencha 2使用ASMX服务_C#_Asmx_Extjs_Sencha Touch 2 - Fatal编程技术网

C# 使用Sencha 2使用ASMX服务

C# 使用Sencha 2使用ASMX服务,c#,asmx,extjs,sencha-touch-2,C#,Asmx,Extjs,Sencha Touch 2,我刚开始学僧茶 我有一个asmx,它返回一个列表,使xml看起来像 <Result> <string>One</string> <string>Two><string> </Results> Ext.define('ListItem', { extend: 'Ext.data.Model', config: { fields: ['text'] } }); var t

我刚开始学僧茶

我有一个asmx,它返回一个列表,使xml看起来像

<Result>
  <string>One</string>
  <string>Two><string>
</Results>
Ext.define('ListItem', {
    extend: 'Ext.data.Model',
    config: {
        fields: ['text']
    }
});

var treeStore = Ext.create('Ext.data.TreeStore', {
    model: 'ListItem',
    defaultRootProperty: 'items',
    proxy: {
        type: 'ajax',
        url: 'http://localhost:81/MyASMX.asmx/Test'
    }
});


Ext.application({
    name: 'Sencha',

    launch: function () {
        Ext.create('Ext.NestedList', {
            fullscreen: true,
            store: treeStore,
            detailCard: {
                html: 'You are viewing the detail card!'
            }
        });
    }
});

但是我得到一个带有标题栏的空列表,标题栏也是空的。

使用.Asmx,您还可以将xml绑定到树存储库 下面是可能对您有所帮助的代码

function BindData(dataxml)
{

   dataxml = dataxml.replace(/&gt;/g, ">");
   dataxml = dataxml.replace(/&lt;/g, "<");
  var doc;
  if (window.ActiveXObject) {         //IE
    var doc = new ActiveXObject("Microsoft.XMLDOM");
    doc.async = "false";
    doc.loadXML(dataxml);
  } else {                             //Mozilla
    var doc = new DOMParser().parseFromString(dataxml, "text/xml");
  }
  var store = new Ext.getStore('treestore');
  store.removeAll();
  var DataLen = doc.getElementsByTagName('FirstNode').length;
     for (var i = 0; i < DataLen; i++) {
    var arrnodename = doc.getElementsByTagName('nodeName')[i].firstChild.nodeValue.replace(/\"/g, '');
  var arrnodename2 = doc.getElementsByTagName('nodeName2')[i].firstChild.nodeValue.replace(/\"/g, '');
    store.add({ C1: arrnodename[0], C2: arrnodename2[0]});
     }
}

愚蠢的问题首先,你是否用Wireshark/Fiddler进行了基本的故障排除,以证明响应实际上是你所认为的?我得到的响应不是我所期望的不。似乎出于某种原因,asmx的结果总是以xml形式出现。我想要json,但我在一些测试中得到了{'stringlist':[{'value':'first'},{'value':'second'},{'value':'third'}]}。自从ASMX贬值以来,我已经有一段时间没有使用它了,但我很确定它只支持XML重新编辑注释:查看JSON.NET,将对象序列化为JSON。