Я имел контроллер MVC с URL, который имел параметр связывания с квадратными скобками в нем, какWebAPI FromUri параметры связывания URL с расчалками
public Product GetProduct([Bind(Prefix = "product[productid]") int id)
, который используется для работы с URL запроса, как
http://localhost:8080/Product/GetProduct?product[productid] = 1001
.
Я могу получить значение для id
как 1001
в контроллере MVC. К сожалению, я должен изменить это на контроллер Web API и у меня есть метод контроллера апи определен как этот
public Task<Product> GetProduct([FromUri(Name=product[productid])] int id)
, для которого я получить ответ 404 с тем же URL запроса. В [FromUrl]
работает с именем параметра без скобок, когда определяется как
public Task<Product> GetProduct([FromUri(Name=productid)] int id)
и URL, как
http://localhost:8080/Product/GetProduct?productid = 1001
Есть ли обходной путь для этого помимо разбора URL запроса с фигурными скобками и получить стоимость.
Согласно [этому вопросу] (http://stackoverflow.com/questions/11490326/is-array-syntax-using-square-brackets-in-url-query-strings-valid), что URL-адрес недействителен и должен сбежать. – Jasen
Это не касается работы с параметризованными массивами, это всего лишь URL-адрес формата. Контроллер MVC отлично работает с брекетами, а контроллер WebApi - нет. Может быть, я не понял это правильно. Какую часть я должен исправить. URL или контроллер? – Gerry