Asp.net:在foreach循环中处理null

时间:2009-06-08 12:37:12

标签: c# asp.net casting null linq-to-xml

在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>
        <% } %>

现在,当在XElement中未设置Element(“DT_ACCADIMENTO”)时,我得到NullReferenceException。有一个快速的方法来处理这个?我试过

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

但它不起作用,我想,它会检查 Value 是否为null,我对字段本身有问题。 任何帮助appriciated

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

尝试使用:

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