1 Reply Latest reply on May 16, 2012 2:02 PM by billwie

    Flex to ASP.NET - best way to attach a FeatureSet to the request for an ASP page

    billwie
      If I have a QueryTask in Flex that is generating a FeatureSet, what is the best way to pass the features in the FeatureSet to an ASP.NET page? QueryString? Should I use JSON to incode the results? If necessary I can just pass an Array with two strings and two real numbers per record, I do not need the graphics object.
        • Re: Flex to ASP.NET - best way to attach a FeatureSet to the request for an ASP page
          billwie
          After some effort I came up with the below. BTW: Thanks Rex Hanson for realizing that some of us might need to do this outside of ESRI: http://rexdotnet.blogspot.com/2009/11/using-arcgis-server-rest-api-in-net.html Next Dev Summit I owe you a beer!

          Flex:

          queryTask.execute(query, new AsyncResponder(onResult, onFault));
              function onResult(featureSet:FeatureSet, token:Object = null):void
              {
               jsonResults = featureSet.toJSON();
                                                                                         var request:URLRequest = new URLRequest("http://bwiespape/GeotechExample2ASP/simple.aspx");
               
                              request.data = { j: jsonResults};
              
                                                                                         // if you don't need a file back you could just as easily use HTTPService here
                              var fileRef:FileReference = new FileReference();
                              fileRef.download(request,"report.pdf");
              }

          ASP.net

          Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
                  Dim serializer As JavaScriptSerializer
          
                  Dim nvc As NameValueCollection = Request.Form
                  Dim responseString As String = nvc("j")
          
                  serializer = New JavaScriptSerializer()
          
                  If responseString IsNot Nothing Then
          
                      Dim results As IDictionary(Of String, Object) = TryCast(serializer.DeserializeObject(responseString), IDictionary(Of String, Object))
          
                      If results IsNot Nothing AndAlso results.ContainsKey("features") Then
                          Dim features As IEnumerable(Of Object) = TryCast(results("features"), IEnumerable(Of Object))
          
                          For Each feature As IDictionary(Of String, Object) In features
                              Dim attributes As IDictionary(Of String, Object) = TryCast(feature("attributes"), IDictionary(Of String, Object))
          
                              Dim project_nu As String = TryCast(attributes("Project_Nu"), String)
                              Dim pointid As String = TryCast(attributes("PointID"), String)
                              Dim east As Double = Decimal.ToDouble(CDec(attributes("East")))
                              Dim north As Double = Decimal.ToDouble(CDec(attributes("North")))
          
                              'Do Something with your results, array, whatever
                              
                          Next
                      End If
                  End If
              End Sub