У меня проблема с устаревшим кодом, которая требует, чтобы я поддерживал случайные URL-адреса, как если бы они были запросами для домашней страницы. Некоторые URL-адреса содержат символы, вызывающие ошибку «От клиента обнаружено потенциально опасное значение Request.Path (&)» . Сайт написан на ASP.Net MVC 3 (на C #) и работает на IIS 7.5.
Вот пример URL ...
http://mywebsite.com/Test123/This_&_That
Вот как у меня настроен маршрут для приема всей почты домена (у меня есть другие маршруты для перехвата определенных страниц) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Я добавил в свой файл web.config следующее ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Я также добавил атрибут ValidateInput к действию, которое должно перехватывать URL ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Но я все еще получаю сообщение об ошибке. Есть идеи, почему? Я что-то пропустил? Прямо сейчас я просто работаю на своем локальном сервере разработки (я еще не пробовал эти исправления в производстве).
источник
Ответы:
Хотя вы можете попробовать эти настройки в файле конфигурации
Я бы не стал использовать такие символы, как '&' в пути URL, заменяя их символами подчеркивания.
источник
Я столкнулся с такой ошибкой. для вызова функции из бритвы.
Решите это, изменив строку
из
в
где мой route.config
источник
Если вы хотите разрешить теги Html только для нескольких текстовых полей в mvc
Ты можешь сделать одну вещь
в контроллере
источник
Мы получали ту же ошибку в Fiddler, когда пытались выяснить, почему наш вьюер карт Silverlight ArcGIS не загружал карту. В нашем случае это была опечатка в URL в коде. Там почему-то был знак равенства.
http: = // someurltosome / awesome / place
вместо
http: // someurltosome / awesome / place
После того, как вы убрали этот знак равенства, он отлично работал (конечно).
источник
Убедитесь, что следующие строки присутствуют в вашем файле web.config
<system.web> <httpRuntime requestPathInvalidCharacters="" /> </system.web>
источник