I hatten einen MVC-Controller mit der URL, die einen Parameter mit eckigen Klammern in ihm wieWebAPI FromUri Bindung URL-Parameter mit Klammern
public Product GetProduct([Bind(Prefix = "product[productid]") int id)
die wie
mit der Anforderungs-URL zu arbeiten, verwendete die Bindung hattehttp://localhost:8080/Product/GetProduct?product[productid] = 1001
.
Ich bin in der Lage, den Wert für id
als 1001
in MVC-Controller zu bekommen. Leider bin ich dies zu einer Web-api-Controller soll sich ändern, und ich habe die api Controller-Methode wie diese definiert
public Task<Product> GetProduct([FromUri(Name=product[productid])] int id)
, für die ich eine 404-Antwort mit der gleichen URL erhalten. Die [FromUrl]
arbeitet mit dem Parameternamen ohne Klammern, wenn wie
public Task<Product> GetProduct([FromUri(Name=productid)] int id)
und die URL wie
http://localhost:8080/Product/GetProduct?productid = 1001
Gibt es eine Abhilfe für dieses abgesehen von der Anfrage-URL mit Klammern Parsen und erhalten die Wert.
Nach [dieser Antwort] (http://stackoverflow.com/questions/11490326/is-array-syntax-using-square-brackets-in-url-query-strings-valid) ist diese URL ungültig und muss entkomme sein. – Jasen
Es geht hier nicht um den Umgang mit parametrisierten Arrays, sondern nur um das Format. Der MVC-Controller funktioniert gut mit den geschweiften Klammern und der WebApi-Controller nicht. Vielleicht habe ich es nicht richtig verstanden. Welchen Teil soll ich reparieren? Die URL oder der Controller? – Gerry