2016-03-18 7 views
1

Wenn Sie den Browserlink/APIA/GetA/a/a/a/a eingeben, werden die Daten (modela2) in json angezeigt.Übertragung zwischen Projektmodellen im JSON-Format, Modellbinder

{ 
    "id11": "a", 
    "id22": "a",  
} 

Das erste Projekt versucht, das Modell modela zweite Projekt und erhalten modela2 zu vermitteln.

Modell im zweiten Projekt übergeben.

Das erste Projekt zurück modela2 kann nicht erhalten.

Auf dieser Linie nicht zurück Daten

var response = client.PostAsJsonAsync(APP_PATH + "/APIA/GetA", modela).Result; 

return response.StatusCode.ToString(); 

readm2

NotFound

if (response.IsSuccessStatusCode) { 

falsch

Projekt 1:

string readm2 = GetModelA2(token); 
Console.WriteLine("readm2"); 
Console.WriteLine(readm2); 


static string GetModelA2(string token) 
     { 
      using (var client = CreateClient(token)) 
      { 
       // 
       var modela = new ModelA { }; 
       ... 

       var response = client.PostAsJsonAsync(APP_PATH + "/APIA/GetA", modela).Result; 
      if (response.IsSuccessStatusCode) 
       { 
        // Parse the response body. 
        var p = response.Content.ReadAsAsync<ModelA2>().Result; 
        //Console.WriteLine("{0}", p.Name); 
        return p.ToString(); 
       } 
     } 
    } 

Projekt 2:

[RoutePrefix("APIA")] 
    public class APIAController : ApiController 
    ... 
    [Route("GetA/{id1}/{id2}/{id3}/{id4}")] 

     public ModelA2 GetA([ModelBinder]ModelA modela) 
     { 
      ... 
      var modela2 = new ModelA2 { }; 
      ... 

      return modela2; 
     } 
     // 




public class ModelA 
    { 
     public string id1 { get; set; } 
     public string id2 { get; set; } 
     public string id3 { get; set; } 
     public string id4 { get; set; }  
    } 

public class ModelA2 
    { 
     public string id11 { get; set; } 
     public string id22 { get; set; }   
    } 
+0

Methoden sind Name wie Get, aber Sie tun HTTP Post. Es ist wirklich verwirrend. Hast du ** [HttpPost] ** Attribute vergessen? – Win

Antwort

0

Fehler korrigiert.

es wie folgt geändert:

[Httppost]

[Weg ("Posta/{id}/{name}")]

öffentliche Game2 Posta ([ Modelbinder] Game Spiel)

var response = client.PostAsJsonAsync (APP_PATH + "/ APITest/PostA/i/i", Spiel) .Result;

Verwandte Themen