Asp.net: обрабатывать нуль в цикле foreach - PullRequest
1 голос
/ 08 июня 2009

в приложении ASP.NET (MVC) У меня есть цикл foreach, который проходит по структуре, которая может содержать или не содержать некоторый элемент:

        <% foreach (XElement segnalazione in ((XElement)ViewData["collezioneSegnalazioni"]).Elements("dossier")) { %>

            <tr>

                <td><%= Html.Encode(segnalazione.Element("NUM_DOSSIER").Value) %></td>
                <td><%= Html.Encode(segnalazione.Element("ANAG_RAGSOC_CGN").Value) %></td>
                <td><%= Html.Encode(segnalazione.Element("ID_RIFATT_SEGN0").Value) %></td>
                <td><%= Html.Encode(segnalazione.Element("FLG_STATUS").Value) %></td>
                <td><%= Html.Encode(segnalazione.Element("DT_ACCADIMENTO").Value)%></td>
                <td><%= Html.Encode(segnalazione.Element("COD_RAMO_LUNA").Value) %></td>
            </tr>
        <% } %>

Теперь я получаю исключение NullReferenceException, когда Элемент ("DT_ACCADIMENTO") не установлен в XElement. Есть ли быстрый способ справиться с этим? Я пробовал с

<td><%= Html.Encode(segnalazione.Element("DT_ACCADIMENTO").Value ?? "")%></td>

но он не работает, так как, я думаю, он проверяет, является ли значение нулевым, где у меня проблема с самим полем. Любая помощь оценивается

Ответы [ 2 ]

3 голосов
/ 08 июня 2009
<td><%= Html.Encode((string)segnalazione.Element("DT_ACCADIMENTO") ?? "")%></td>
1 голос
/ 08 июня 2009

Попробуйте использовать:

segnalazione.Element("NUM_DOSSIER") == null ? "" : segnalazione.Element("NUM_DOSSIER").Value
...