Я хочу разрешить пользователю добавлять столько URL-адресов изображений, сколько они хотят.
Поэтому я создал класс в Asp.Net Core Razor Pages Web App. Вот мой текущий код:
public class Post
{
public int ID { get; set; }
public string Text { get; set; }
public List<string> Url { get; set; }
public string Date { get; set; }
}
Когда я пытаюсь создать настоящие бритвенные страницы, используя шаблоны и выбирая эту модель в качестве модели страницы, я получаю эту ошибку: Изображение ошибки
почему это происходит? и что я должен сделать, чтобы это исправить?
Не могли бы вы объяснить лучше или привести пример. Извините, я новичок в С#.
@hassan.ef предоставил один ниже
Пример ниже не работает
Я не думаю, что проблема связана с частями MVC или Razor, поскольку обе могут работать с моделями, которые включают списки из коробки (я предполагаю, что ваша сущность Post является моделью?). Это должно быть что-то в вашем компоненте строительных лесов?
Да это модель. Так должен ли я вручную создавать страницы бритвы?
Вы могли бы это сделать, безусловно, можно повторить список на странице бритвы.
Если у каждого продукта может быть несколько изображений, у вас есть отношение «один ко многим», и пути к изображениям нуждаются в собственной таблице. Вы должны создать новый класс:
public FilePath
{
public int ID {get;set;}
public string Path {get;set;}
}
Тогда свойство ImagePath будет выглядеть так:
public List<FilePath> ImagePath {get;set;}
Однако, если у каждого продукта есть только одно изображение, ваш ресурс не должен быть коллекцией:
public string ImagePath {get;set;}
Хасан, спасибо за ответ, но я все еще получаю ту же ошибку.
используйте эту ссылку: forums.asp.net/t/…
Хассан, ответ правильный, и теперь я могу добавить список изображений. Спасибо, и не могли бы вы отредактировать свой ответ по ссылке, чтобы я мог поставить галочку.
Muszeo, что ты имеешь в виду под ОП?
Saatvik, OP означает оригинальный постер, как в вопросе владельца / создателя.
Хассан, когда я пытаюсь получить доступ к URL-адресу изображения со страницы бритвы, используя: <img src = "@item.Url[0].Path" class = "d-block w-100" alt = "@item.Text"> я получаю сообщение об ошибке: NullReferenceException: ссылка на объект не указывает на экземпляр объекта.
@ Saatvik отлаживает ваш код и проверяет объект @item, который является нулевым или не нулевым, а также свойство url в этом объекте является нулевым или не нулевым?
вам нужно где-то обновить свойство Url, например. в конструкторе. По умолчанию это будет нуль.