【问题标题】:Loading data using as3 URLLoader from ASP.NET MVC Controller使用 as3 URLLoader 从 ASP.NET MVC 控制器加载数据
【发布时间】:2013-11-04 16:25:13
【问题描述】:

ASP.NET 控制器:

// GET api/assets/5
public string Get(int id)
{
    ... <some DB init here>
    string sResult = (string)oCmd.ExecuteScalar();
    return sResult;
}

AS3 接收器:

private function btnLoad_Click():void
{
    try
    {
        var urlRequest:URLRequest = new URLRequest("http://192.168.55.100/getimage/api/assets/1");
        oUrlLoader = new URLLoader();
        oUrlLoader.dataFormat = URLLoaderDataFormat.TEXT;
        oUrlLoader.addEventListener(Event.COMPLETE, onXMLDataLoaded, false, 0, true);
        oUrlLoader.load(urlRequest);
    }
    catch (ex:Error) {}
}
protected function onXMLDataLoaded(evt:Event):void {    
    try
    {
        var sData:String = oUrlLoader.data.toString();
        editor.paste_fromserver( XML(sData));
    }
    catch (ex:Error) { trace(ex.message); }
}

现在我尝试将字符串解析为 XML,但我得到的只是错误:“错误 #1090:XML 解析器失败:元素格式错误。”

我发现当我在“Watch Expression”中观看 oUrlLoader.data 时,值就在那里,但是 sData = oUrlLoader.data = """" (空字符串?)。

还尝试了 oUrlLoader.data.toString() - 没有帮助,但手表表达式发生了一些变化,没有 toString() 它在值的开头有两个“”符号,而 toString() 它只有一个“ .

知道为什么设置了 Watch Expression 值中的 oUrlLoader.data,但代码中相同的 oUrlLoader.data 不返回任何字符串吗?

附:这实际上是字符串值(SVG 图像),而不是二进制数据。我正在为 as3 使用 Flash Builder。

编辑:

呵呵,sData在Watch Expression中也有值。数据为:

"<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg version=\"1.2\" id=\"svg2\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><circle cx=\"284\" cy=\"310\" r=\"150\" id=\"untitled\" transform=\"matrix(1,0,0,1,-37,-22)\" style=\"opacity:1;stroke:#44F247;fill:#F087CA;fill-opacity:1;stroke-opacity:0.54;stroke-width:35.1;stroke-miterlimit:3;stroke-linecap:none;stroke-linejoin:round;\"/></svg>"

当我复制这些数据并将其直接粘贴到代码中时,它可以工作,但是使用这个 urlLoader 它不起作用...... :(

EDIT2:

来自构建器的屏幕截图(观察表达式有值,代码中的 sData,当鼠标悬停时 - 没有): http://img9.imageshack.us/img9/7471/o7sa.png

还有... :] 这个字符串在源数据库中不包含任何制表符、换行符或其他空格...

【问题讨论】:

    标签: c# asp.net-mvc actionscript-3


    【解决方案1】:

    问题在于从服务器检索到的数据/文本。它充满了反斜杠。虽然在直接在代码中编写文本时它可以很好地用作转义字符,但它不应该出现在检索到的数据中。

    【讨论】:

    • 谢谢,就是这样! :D 我已将 MVC api 控制器更改为标准控制器,这确实有帮助,现在字符串不包含转义字符。
    猜你喜欢
    • 1970-01-01
    • 2018-09-07
    • 2012-12-17
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    相关资源
    最近更新 更多