Как добавить несколько значений в одно поле модели в Asp.Net Core Web App?

Я хочу разрешить пользователю добавлять столько 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; }
}

Когда я пытаюсь создать настоящие бритвенные страницы, используя шаблоны и выбирая эту модель в качестве модели страницы, я получаю эту ошибку: Изображение ошибки

почему это происходит? и что я должен сделать, чтобы это исправить?

вам нужно где-то обновить свойство Url, например. в конструкторе. По умолчанию это будет нуль.

muszeo 10.04.2019 07:02

Не могли бы вы объяснить лучше или привести пример. Извините, я новичок в С#.

Saatvik 10.04.2019 07:18

@hassan.ef предоставил один ниже

muszeo 10.04.2019 07:34

Пример ниже не работает

Saatvik 10.04.2019 07:54

Я не думаю, что проблема связана с частями MVC или Razor, поскольку обе могут работать с моделями, которые включают списки из коробки (я предполагаю, что ваша сущность Post является моделью?). Это должно быть что-то в вашем компоненте строительных лесов?

muszeo 10.04.2019 08:03

Да это модель. Так должен ли я вручную создавать страницы бритвы?

Saatvik 10.04.2019 08:15

Вы могли бы это сделать, безусловно, можно повторить список на странице бритвы.

muszeo 10.04.2019 08:35
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
7
848
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если у каждого продукта может быть несколько изображений, у вас есть отношение «один ко многим», и пути к изображениям нуждаются в собственной таблице. Вы должны создать новый класс:

public FilePath
{
    public int ID {get;set;}
    public string Path {get;set;}
}

Тогда свойство ImagePath будет выглядеть так:

public List<FilePath> ImagePath {get;set;}

Однако, если у каждого продукта есть только одно изображение, ваш ресурс не должен быть коллекцией:

public string ImagePath {get;set;}

Хасан, спасибо за ответ, но я все еще получаю ту же ошибку.

Saatvik 10.04.2019 07:38

используйте эту ссылку: forums.asp.net/t/…

hassan.ef 10.04.2019 08:23

Хассан, ответ правильный, и теперь я могу добавить список изображений. Спасибо, и не могли бы вы отредактировать свой ответ по ссылке, чтобы я мог поставить галочку.

Saatvik 10.04.2019 08:36

Muszeo, что ты имеешь в виду под ОП?

Saatvik 10.04.2019 08:37

Saatvik, OP означает оригинальный постер, как в вопросе владельца / создателя.

Seb 10.04.2019 16:55

Хассан, когда я пытаюсь получить доступ к URL-адресу изображения со страницы бритвы, используя: <img src = "@item.Url[0].Path" class = "d-block w-100" alt = "@item.Text"> я получаю сообщение об ошибке: NullReferenceException: ссылка на объект не указывает на экземпляр объекта.

Saatvik 11.04.2019 02:07

@ Saatvik отлаживает ваш код и проверяет объект @item, который является нулевым или не нулевым, а также свойство url в этом объекте является нулевым или не нулевым?

hassan.ef 11.04.2019 07:00

Другие вопросы по теме