2016-11-02 3 views
0

Ich habe Web-API in Framework entwickelt, 4 und Code ist wie untenPass Listentyp der Klasse als Parameter in HttpWebRequest Web API verbrauchen

[HttpPost] 
     public string ValidateData(List<MsrValidateData> data) 
     { 
      return _repository.ValidateAllData(data); 
     } 

Jetzt möchte ich dies in asp.net Server-Seite Web-Formular konsumieren wie verbrauchen i mit HttpWebRequest Liste Art von Daten schreiben

ich mag diese

System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url); 
     req.ContentType = "application/json"; 
     req.Method = "POST"; 

bin mit Aber wie gehe ich Liste Art von Daten als Parameter t o Anfrage?

Antwort

0

Sie haben nicht die Struktur Ihrer Klasse MsrValidateData geteilt, also verwende ich Feld1 und Feld2 für seine Felder. Bitte ersetzen field1 & field2 mit Ihrem tatsächlichen Felder der Klasse MsrValidateData und fügen Sie Daten zu Ihrer Anfrage wie folgt:

System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url); 
    req.ContentType = "application/json"; 
    req.Method = "POST"; 
    string postData = @" 
     { 
      'Data': 
      [ 
       { 'field1': 'value11', 'field2': 'value12' }, 
       { 'field1': 'value11', 'field2': 'value12' }, 
       { 'field1': 'value11', 'field2': 'value12' } 
      ] 
     }"; 
    byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
    req.ContentLength = byteArray.Length; 
    System.IO.Stream dataStream = req.GetRequestStream(); 
    dataStream.Write(byteArray, 0, byteArray.Length); 
    dataStream.Close(); 

eine neue Klasse ListMsrValidateData erstellen:

public class ListMsrValidateData 
{ 
    public List<MsrValidateData> Data { get; set; } 
} 

Ihre validateData Methode ändern, wie unten:

[HttpPost] 
    public string ValidateData([FromBody] ListMsrValidateData data) 
    { 
     return _repository.ValidateAllData(data); 
    }