.net-Core-web-api mehrere [FromBody]

Ich bin der Konvertierung der code, der geschrieben wurde ASP.Net MVC ASP.Net Kern MVC. Wenn ich die Konvertierung der code, den ich vor einem problem. Wir verwendeten eine Methode, die mehrere Parameter wie folgt:

[HttpPost]                                                      
public class Search(List<int> ids,SearchEntity searchEntity)           
{   
//ASP.NET MVC                                                                   
}

Aber bei der Codierung .net core ids parameter null ist.

[HttpPost]                                                      
public class Search([FromBody]List<int> ids,[FromBody]SearchEntity searchEntity)           
{   
//ASP.NET Core MVC                                                                   
} 

Wenn ich "ids" - Parameter in SearchEntity Klasse ist es kein problem, aber ich habe viele Methoden, die wie folgt geschrieben. Was kann ich tun gegen dieses problem?

  • Kann nur eine FromBody als der Körper kann nur einmal gelesen werden
  • wo ist ids aus. des Körpers oder der URL
  • Verwenden Sie MVC (Beiträge von "Views") oder WebAPI (http-post-Anfragen von Ajax/JavaScript)? [FromBody] ist nur da, um json Deserialisieren (oder einem anderen Formatierungsprogramm, das konfiguriert ist, wie z.B. xml). Für MVC-Beiträge müssten Sie [Bind("Value, OtherValue", Prefix="searchEntity"] oder so etwas wie, dass, wenn Ihre Daten ist post im format von id=1&id=2&id=3&searchEntity.Value=abc123&searchEntity.OtherValue=xyz
  • Anfragen von MVC kommen als multipart/form-data und ist im ähnlichen format wie die url-query => key=value&key2=value2&key3=value3 wo Webapi-Anfragen werden in der Regel xml oder json in der Nutzlast mit application/json oder application/xml mime-Typ
  • Wäre es nicht sinnvoll, alle Parameter für die Suche verwendet, in Ihrem SearchEntity Klasse? Wenn die ids parameter wird verwendet zum Abfragen oder filtern Sie dann eine Eigenschaft für die es in SearchEntity.
  • ids der parameter kommt aus dem Körper.
  • Sie können custom-Modell der Bindung zu tun, binden mehrerer Parameter. Zum Beispiel: evolpin.wordpress.com/2019/02/09/...

Schreibe einen Kommentar