2011-03-30 93 views
2

假設我有以下幾點:ASP.NET MVC:在詳細信息視圖刪除空場

操作:

public ActionResult Details(int id) 
{ 
    Person person = personRepository.GetPerson(id); 

    return View(person) 
} 

這是我的看法:

Name: <%= Html.Encode(Model.Name) %><br /> 
    Age: <%= Html.Encode(Model.Age) %><br /> 
    Birth Date: <%= Html.Encode(Model.Birthday) %><br /> 
    Country: <%= Html.Encode(Model.Country) %><br /> 
    Weight: <%= Html.Encode(Model.Weight) %><br /> 
    Height: <%= Html.Encode(Model.Height) %><br /> 
    Phone: <%= Html.Encode(Model.PhoneNumber) %> 

我的問題是,國家,重量和身高都可以爲空。我怎樣才能做這樣的事情

foreach (var field in Model) 
     if (var field != null) 
     { 
      field.name + ": " + field.value 
     } 

我能做到這樣,但我敢肯定有一個更好的辦法:

if (Model.Name != null){ 
      <%= Html.Encode(Model.Name)%> 
     } 

預先感謝您

+0

我的解決方案這個問題是爲了確保我的數據庫中的可空字段不爲空,而是包含空字符串。我相信這違反了各種規則。希望我們能在這裏得到一個很好的答案。 – Pete 2011-03-30 19:41:17

+2

我會去看可空查看模型中的國家,重量和高度,以便實體不會改變。我也會考慮使用Html.EditorFor和Html.LabelFor輔助方法。 – WorldIsRound 2011-03-30 19:43:16

+0

@WorldsIsRound感謝與輔助方法一起,似乎在做伎倆 – 2011-03-30 23:15:21

回答

2
Country:<%: string.IsNullOrEmpty(Model.Country) ? String.Empty : Model.Country %>     
<br /> 

記那在<%:%> MVC 2你可以使用它的Html.Encode

+0

公平足夠,我會採取它 – 2011-03-30 23:01:10

+0

+1現在有無論如何,使用Http.EditorFor或Http.TextFor等時,自動發生? – Pete 2011-03-31 00:18:15

+0

@Pete沒有建立在你可以使你自己的擴展方法來包裝這些和檢查爲空。 – Ryan 2011-03-31 03:07:50