Проблема с апострофом в URL-адресе с OData

Я использую oData protocol, который добавляет критерии фильтра в URL-адрес.

E.g. /api/restaurants/getall?$filter=substringof('macdonald',Name)

Моя проблема, когда значение имеет апостроф, например (macdonald's), оно сломает URL-адрес

Он отлично работает, если я заменю его на %26, например macdonald%26, но добавив s (macdonald%26s), URL-адрес не будет работать.

какие-либо предложения?


person user1150331    schedule 20.03.2013    source источник


Ответы (2)


Находясь внутри строки в кавычках, одинарную кавычку можно избежать, удвоив ее. Так что в вашем случае это будет выглядеть как «макдональдс».

person Vitek Karas MSFT    schedule 20.03.2013
comment
Спасибо, теперь проблема с одинарными кавычками устранена, но выбранное имя не получено. возможно, OData не получил его правильно - person user1150331; 20.03.2013
comment
Из этого я не могу сказать, что не так. Если вы можете отлаживать службу, вы можете перехватить запрос (зависит от используемого вами поставщика запросов), чтобы увидеть, что он ищет. Или, может быть, какой-нибудь SQL-профайлер тоже подскажет. - person Vitek Karas MSFT; 22.03.2013

Я вижу, что это старый пост, но я укажу, что аргументы в выражении substringof переключаются.

https://help.nintex.com/en-us/insight/OData/HE_CON_ODATAQueryCheatSheet.htm

Это помимо проблемы с апострофом (одинарной кавычкой).

person IraW    schedule 25.01.2019