Атрибуты компонента не поддерживают сложный контент (смешанный C# и разметка) - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь использовать аргумент Razor и передать его в Blazor для дальнейшей обработки, но я получаю это сообщение об ошибке «Атрибуты компонента не поддерживают сложное содержимое (смешанные C# и разметка)» в событии @onclick, которое я имею пытаюсь использовать тег img ниже:

image

Буду признателен за любые предложения!

1 Ответ

2 голосов
/ 06 февраля 2020

Основная проблема с вашим кодом, из-за которой вы получили ошибку компилятора, - это способ вызова метода IncrementScore. Вы должны понимать, что @onclick не является атрибутом Html, которому вы должны присвоить значение, в данном случае это метод, который получает значение.

Атрибут @onclick является директивой компилятора, сообщающей компилятору, как чтобы сформировать обработчик события, который должен вызываться при щелчке элемента, цель события и т. д. c. В вашем случае вы sh вызовете метод и передадите ему значение. Это можно сделать только с помощью выражения лямбады следующим образом:

@onclick="@(()=> IncrementScore(<value to pass to the method>))"

Следующий фрагмент кода иллюстрирует, как правильно вызывать метод IncrementScore, когда вы используете для l oop или foreach l oop. Различие очень важно в отношении локальных переменных, которые передаются методам в циклах

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

image

Надеюсь, это поможет ...

...