Asp.Net Web Api Разрешить URL, закодированный прямой / обратный слеш - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь отправить строку с некоторыми специальными символами на мой контроллер Asp.Net Web Api. Однако Asp.Net не может разрешить строку, закодированную в URL. Отправка чего-то вроде «A% 2F223% 2F4» является кодировкой «A / 223/4», и то же самое не работает для обратной косой черты. Это работает для других специальных символов, хотя. Есть ли способ заставить это работать? Или можно отключить автоматическое декодирование, чтобы я мог сделать это вручную?

Это мои функции внутри моего контроллера:

[HttpGet, Route("getByArtNr/{articleNr}")]
public IHttpActionResult GetByArtNr(string articleNr)
{
    Article article = dbContext.Article.Where(x => x.ArtNr == articleNr).FirstOrDefault();
    if(article == null)
        return NotFound();

    return Ok(article);
}

Пример запроса: http://localhost:54282/api/v1/article/getByArtNr/A%2F223%2F4/

1 Ответ

0 голосов
/ 04 мая 2019

Чтобы отправить строку с / (косой чертой), мы можем использовать wildcard parameters в маршруте.Примерно так:

Route("getByArtNr/{*articleNr}")

Это позволит читать фрагмент URL с несколькими / символами как один параметр.

Надеюсьпомогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...