Подтвердить что ты не робот

Как проверить свойство строки строки для null в виде бритвы

Я работаю над приложением ASP.NET MVC 4. Я использую EF 5 с первым кодом и в одном из моих сущностей:

public string ImageName { get; set; }
public string ImageGUIDName { get; set; }

те два свойства, которые являются частью моего объекта. Так как у меня может не быть загруженного изображения, эти значения могут быть нулевыми, но когда я визуализирую представление, передающее модель с ImageName и ImageGUIDName, идущими как null из базы данных, я получаю это:

Exception Details: System.ArgumentNullException: Value cannot be null.

Основная идея заключается в предоставлении различного текста для пользователя на основе факта, если есть изображение или нет:

            @if (Model.ImageName != null)
            {
                <label for="Image">Change picture</label>
            }
            else
            { 
                <label for="Image">Add picture</label>
            }

Итак, когда вышеприведенный код получил мне ту ошибку, которую я пробовал с помощью string.IsNullOrEmpty(Model.ImageName), а также Model.ImageName.DefaultIfEmpty() != null, но я получил ту же ошибку. Кажется, что я не могу просто установить свойство y entity как nullable:

public string? ImageName { get; set; } //Not working as it seems

Итак, как я могу справиться с этим?

4b9b3361

Ответ 1

Попробуйте это сначала, вы можете передать Null Model:

@if (Model != null && !String.IsNullOrEmpty(Model.ImageName))
{
    <label for="Image">Change picture</label>
}
else
{ 
    <label for="Image">Add picture</label>
}

Кроме того, вы можете сделать его еще более аккуратным с помощью тройного удовольствия! - но это все равно будет ошибкой, если ваша модель Null.

<label for="Image">@(String.IsNullOrEmpty(Model.ImageName) ? "Add" : "Change") picture</label>