От клиента обнаружено потенциально опасное значение Request.Path (&)

Я понимаю, почему это происходит, но мне нужен обходной путь. Я рассмотрел некоторые другие вопросы по StackOverflow, но ни один из них не помог. Я не хочу отключать проверку ввода на всем веб-сайте, потому что это определенно опасно. У меня есть только одно (по крайней мере, пока) место, где мне нужно отключить проверку ввода.

Я украсил метод действия атрибутом [ValidateInput (false)] и кодирую строки с помощью Html.Encode. Но все равно получаю ту же ошибку. Вот мое мнение:

<div id="sharwe-categories">
    <ul class="menu menu-vertical menu-accordion">
        @foreach(var topLevel in Model)
        {
            var topLevelName = Html.Encode(topLevel.Name);
             <li class="topLevel">
                <h3>  
                    @Html.ActionLink(topLevel.Name, "Index", "Item", new { category = topLevelName }, new {@class = "main"} )
                    <a href="#" class="drop-down"></a>
                </h3>
                <ul>
                    @foreach (var childCategory in topLevel.Children)
                    {
                        var childcategoryName = Html.Encode(childCategory.Name);
                        <li>@Html.ActionLink(childCategory.Name, "Index", "Item", new RouteValueDictionary { { "category", topLevelName }, { "subcategory", childcategoryName } }, null)</li>
                    }
                </ul>
            </li>
        }

    </ul>

</div>

Как видите, пользовательский ввод отсутствует. Но в некоторых названиях категорий есть "опасные" символы ... Какие-нибудь решения?

8
задан Robert Koritnik 15 April 2011 в 20:55
поделиться