В представлении Razor Pages (без атрибута «@page»; только файл cshtml) я пытаюсь отобразить тег привязки. Я не хочу использовать помощник тега, я просто хочу, чтобы он отображался так:

<a href="javascript:void(0)" onclick="javascriptFunctionCall(1)" class="page-link"><i class="fas fa-fast-backward"></i></a>

Представление отображается без сообщения об ошибке, но атрибуты «href» и «onclick» внутри тега привязки просто не отображаются. Атрибут "class" отображает. Если я добавлю к тегу другие атрибуты, они также отобразятся. Я использую иконки fontawesome, и они правильно отображаются. Но атрибуты «href» и «onclick» не отображаются.

Для атрибута «href», если я изменю значение на «#», он отобразится. Очевидно, что-то в механизме рендеринга RazorPages говорит: «Я не буду рендерить это», если атрибут содержит javascript.

Очевидно, это происходит только в ракурсе. Я замечаю, что пытаюсь отобразить тот же элемент на странице (с атрибутом @page), он отображается нормально.

Само представление отображается, когда пользователь нажимает кнопку, которая вызывает вызов выборки, который попадает в метод на стороне сервера, который отображает представление следующим образом:

return Partial("_MyViewName", myModel);

Есть ли способ отображать статические значения в атрибутах href и onclick в теге привязки в представлении Razor?

0
Tom Regan 12 Фев 2021 в 18:09

1 ответ

Лучший ответ

Я сам случайно удалил javascript, потому что в javascript я передавал значение, возвращаемое с сервера, через библиотеку DOMPurify (для защиты от атаки с использованием javascript-инъекции). Это было очень глупо с моей стороны, но особое спасибо @KingKing за то, что заставили меня разобраться.

0
Tom Regan 12 Фев 2021 в 16:29