Как включить символы кавычек в качестве параметра маршрута? Получение сообщения "Недопустимые символы в пути"

У меня есть окно поиска, которое существует на всех страницах. Пользователь может ввести текст и щелкнуть поиск, и они окажутся на странице поиска с результатами, отображаемыми для них.

При нажатии на поиск форма, содержащая текстовое поле, отправляется по следующему маршруту:

http://localhost:2010/search/my%20search%20term

это работает. Но если я поставлю кавычки вокруг строки,

http://localhost:2010/search/%22my%20search%20term%22

Это происходит с сообщением об ошибке "Недопустимые символы в пути".

со следующей трассировкой стека:

[ArgumentException: Illegal characters in path.]
   System.IO.Path.CheckInvalidPathChars(String path) +7493413
   System.IO.Path.Combine(String path1, String path2) +40
   System.Web.Configuration.UserMapPath.GetPhysicalPathForPath(String path, VirtualDirectoryMapping mapping) +114
   System.Web.Configuration.UserMapPath.GetPathConfigFilename(String siteID, VirtualPath path, String& directory, String& baseName) +72
   System.Web.Configuration.UserMapPath.MapPath(String siteID, VirtualPath path) +30
   System.Web.Configuration.UserMapPath.MapPath(String siteID, String path) +31
   System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +297
   System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath, Boolean permitNull) +51
   System.Web.CachedPathData.GetConfigPathData(String configPath) +341
   System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) +110
   System.Web.HttpContext.GetFilePathData() +36
   System.Web.HttpContext.GetConfigurationPathData() +26
   System.Web.Configuration.RuntimeConfig.GetConfig(HttpContext context) +43
   System.Web.Configuration.CustomErrorsSection.GetSettings(HttpContext context, Boolean canThrow) +41
   System.Web.HttpResponse.ReportRuntimeError(Exception e, Boolean canThrow, Boolean localExecute) +101
   System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext context, Exception e) +383

Я не уверен, что здесь не так.. Мне нужно как-то кодировать вход? Нужно ли указывать что-то другое в маршрутизации?

1 ответ

Решение

Вот запись в блоге Скотта Хансельмана, которая должна дать вам несколько хороших указаний.

Другие вопросы по тегам