簡體   English   中英

如何在剃刀視圖中檢查模型字符串屬性為null

[英]How to check model string property for null in a razor view

我正在研究ASP.NET MVC 4應用程序。 我首先使用EF 5代碼,然后在我的一個實體中使用:

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

那兩個屬性是我實體的一部分。 由於我可能沒有上傳圖像,因此這些值可以為null但是當我渲染視圖時, ImageNameImageGUIDName從數據庫傳遞為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實體屬性設置為可空:

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

那我怎么處理這個呢?

首先嘗試這個,你可能會傳遞一個Null模型:

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

另外,你可以用一些三元的樂趣使它更整潔 - 但如果您的模型為空,那仍然會出錯。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM