[英]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但是當我渲染視圖時, 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實體屬性設置為可空:
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.