.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 vonid=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 mitapplication/json
oderapplication/xml
mime-Typ - Wäre es nicht sinnvoll, alle Parameter für die Suche verwendet, in Ihrem
SearchEntity
Klasse? Wenn dieids
parameter wird verwendet zum Abfragen oder filtern Sie dann eine Eigenschaft für die es inSearchEntity
. - 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/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann nur eine
FromBody
als der Körper kann nur einmal gelesen werdenReferenz Modell Verbindlich ASP.NET Kern
MVC-Kern ist strenger, wie bind-Modell zu handeln. Sie haben auch explizit angeben, wo Sie die Daten zu binden aus, wenn Sie anpassen möchten, verbindliches Verhalten.