Я довольно новичок в MVC и недавно начал проект Asp.Net MVC3, используя движок Razor.
В настоящее время у меня возникают проблемы с выводом имени изображения в тег html img с помощью Razor.
Допустим, в моей модели есть класс Car со строковым свойством с именем ModelName. У меня также есть папка с изображениями модели автомобиля, они названы в честь модели автомобиля, так что я могу условно показать изображение конкретной модели, просто используя название.
Из моего контроллера я передаю коллекцию автомобилей на мой взгляд и делаю следующее, чтобы показать список изображений моделей автомобилей:
@foreach (var item in Model) {
<img src='@item.ModelName.png' />
}
Однако, если я пытаюсь запустить это, я получаю ошибку:
Сообщение об ошибке компилятора: CS1061:
«строка» не содержит определения
для «png» и без метода расширения
«png» принимает первый аргумент
тип 'строка' может быть найден (вы
отсутствует директива использования или
ссылка на сборку?)
Я тоже пытался
@foreach (var item in Model) {
<img src='@{item.ModelName}.png' />
}
Но это приводит к:
Сообщение об ошибке компилятора: CS1528: ожидается; или = (невозможно указать аргументы конструктора в> объявлении)
Ошибка источника:
Строка 84: #line default
Строка 85: # линия скрытая линия
86: WriteLiteral (". Png \ '
"> \ Г \ п"); Строка 88:
Я могу обойти это, выполнив:
@foreach (var item in Model) {
string imageName = string.Format("{0}.png", item.ModelName);
<img src='@imageName' />
}
Но это кажется довольно неуклюжим, наверняка должен быть лучший способ ??