У меня есть этот адрес, который работает абсолютно нормально на моем веб-сервере VSMVC4: URL маршрутизации с электронной почтой в качестве параметра
http://localhost:4454/cms/account/edituser/[email protected] (works)
но когда я публикую этот сайт IIS7.5, он просто бросает 404.
http://dev.test.com/cms/account/edituser/[email protected] (does not work)
но странные вещи происходит, если удалить E-mail адрес
http://dev.test.com/cms/account/edituser/email (works , no 404)
но если я изменить URL со строкой запроса он отлично работает
http://dev.test.com/cms/account/[email protected] (works)
здесь мой вход маршрута
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new[] { "App.NameSpace.Web.Controllers" }
);
странно, что я заметил, что когда сервер выбрасывает 404 страницы ошибки, это стандарты Iis 404 страниц не один пользовательских один у меня есть.
, так что мне было интересно, есть ли какие-либо проблемы с моим сопоставлением маршрутов или IIS не нравится URL-адрес, который имеет адрес электронной почты как параметр. но все работает отлично с моим местным разработчиком.
Thanks
Спасибо @Raciel. MVC делает кодирование самостоятельно, как электронная почта% 40domian.com – Nnp
Base64 + UrlEncode должен предоставить вам то, что вам нужно. –
Где добавить функции ToBase64 и FromBase64? –