Это потому, что itemId
является переменной javascript.Выражение C # @Model.CatalogItems[itemid]
будет выполнено на сервере.
Механизм просмотра бритвы выполнит код в вашем представлении бритвы, и вывод этого (в основном HTML и JavaScript, который может понять браузер) будет отправлен клиенту (браузеру).Браузер выполнит этот ответ (проанализирует HTML, JavaScript и выполнит его) на стороне клиента.Метод changeImage
- это метод JavaScript, который выполняется в браузере, когда конечный пользователь нажимает на изображение.Когда бритва выполняет строку @Model.CatalogItems[itemid]
для вывода, она не имеет переменной itemId
, определенной / доступной, следовательно, вы получаете ошибку.
Вместо передачи itemId
, вы можете передатьпуть к изображению как есть.
onclick="changeImage('../../Content/@item.ProductImageURL')"
и в вашем методе changeImage
используйте это значение для обновления другого изображения src
function changeImage(src) {
document.getElementById("#empty-item1").innerHTML = "<img src='" + src +"' />
}