Вы устанавливаете свое состояние в componentDidMount, что приведет к повторной визуализации компонента, это бесконечный цикл, следовательно, ошибка. Если вы хотите, чтобы при инициализации ваше состояние было подпоркой, вам следует использовать конструктор (обязательно вызовите super):
class DisplayComponent extends Component<any> {
constructor(props) {
super(props);
const match = this.props.match;
this.props.setBrandandComponentState(
match.params.brand,
match.params.component
);
document.body.setAttribute("brand", match.params.brand);
};
Попробуйте это.
var encodedHtml = HttpContext.Current.Server.HtmlEncode(...);
Не знайте, существует ли точная замена, но существует метод HtmlUtility.HtmlEncode
, который заменяет специальные символы их HTML-эквивалентами. Близкий родственник HtmlUtility.UrlEncode
для рендеринга URL. Вы могли также использовать элементы управления проверки правильности как RegularExpressionValidator
, RangeValidator
, и System.Text.RegularExpression.Regex
, чтобы удостовериться, что Вы получаете то, что Вы хотите.
На самом деле, вы можете попробовать этот метод:
HttpUtility.HtmlAttributeEncode()
Почему? Ссылаясь на страницу HtmlAttributeEncode в документах MSDN :
Метод HtmlAttributeEncode преобразует только кавычки ("), амперсанды (&) и левые угловые скобки (<) в эквивалентные символьные объекты. Это значительно быстрее, чем метод HtmlEncode.