2

Meine Aktionsmethode zu haben, soll wie folgt aussehen:Zulassen Parameternamen „[“ in ASP.Net Core-WEB API

public IActionResult GetAll([FromQuery]string page[Number],[FromQuery]string page[Size]) 
    { 
    //code 
    } 

HTTP Request is like: "GetAll?page%5Bnumber%5D=0&page%5Bsize%5D=100". 

Problem: der Parametername erlaubt mir nicht, eine eckige Klammer zu haben.

+0

Man muss bedenken, dass 'Name [1]' oder 'Name [key] '** ist nicht ** eine HTML-Funktion. Aus HTML Sicht sind sie nur Namen, ** nicht Arrays **. Es ist nur so, dass einige serverseitige Anwendungen/Sprachen (wie PHP) dies als Arrays interpretieren. Aber wieder, es ist kein Standard und Sie sollten ** nicht davon abhängen, dass 'name [key]' eine Art Wörterbuch/Liste darstellt. – Tseng

+0

Gleiches gilt für Get-Parameter: 'index? A = 1 & a = 2' ist nur tat: 2 Werte für a; einmal mit 1 und einmal mit zwei. Es ist kein Array und nicht im HTML/Http Standard definiert. Jede Sprache entscheidet, was zu tun ist, d. H. Nur die erste oder letzte zählt. Manche machen ein Array von anderen nur dann, wenn es "a [] = 1 & a [] = 2" ist, aber es hängt vollständig von der Implementierung ab. Aus diesem Grund sollten Sie solche Terminologien/Muster vermeiden. – Tseng

Antwort

2

Außerdem, dass ich für einfachere Namen der Parameter gehen möchten, können Sie dieses Problem lösen, indem ein Wörterbuch mit:

public IActionResult GetAll(Dictionary<string, string> page) { 
    var x = page["Number"]; 
    var y = page["Size"]; 
} 
+0

Ich habe keine Kontrolle über Endpunkte :) Ich hätte es auch einfacher gemacht! Vielen Dank! – XYZ

Verwandte Themen