Значение свойства по умолчанию не отображается - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь отобразить значение по умолчанию для свойства, поскольку оно пустое, и я хочу отобразить что-то, а не ничего.

Вот мой код cs html:

            <tbody>
                <tr>
                    <td>Id </td>
                    <td>@Html.DisplayFor(model => model.id)</td>
                </tr>
                <tr>
                    <td>Previous id </td>
                    <td>@Html.DisplayFor(model => model.oldId)</td>
                </tr>
                <tr>
                    <td>Category </td>
                    <td id="categoryId">@Html.DisplayFor(model => model.categoryId)</td>
                </tr>
                <tr>
                    <td>Date of creation </td>
                    <td>@Html.DisplayFor(model => model.dateCreation)</td>
                </tr>
                <tr>
                    <td>Date of modification</td>
                    <td>@Html.DisplayFor(model => model.dateModify)</td>
                </tr>
                @* TODO: Return name of logged in user. *@
                <tr>
                    <td>User id</td>
                    <td>@Html.DisplayFor(model => model.userId)</td>
                </tr>
                <tr>
                    <td>Zone</td>
                    <td id="zoneId">@Html.DisplayFor(model => model.zoneId)</td>
                </tr>
                <tr>
                    <td>Equipment</td>
                    <td id="equipmentId">@Html.DisplayFor(model => model.equipmentId)</td>
                </tr>
                <tr>
                    <td>Equipment task</td>
                    <td id="taskId">@Html.DisplayFor(model => model.taskId)</td>
                </tr>
                <tr>
                    <td>Date revision</td>
                    <td>@Html.DisplayFor(model => model.dateRevision)</td>
                </tr>
            </tbody>

Вот мои свойства:

        public int id { get; set; }
        public int? oldId { get; set; } = 0; 
        public int? categoryId { get; set; }
        public DateTime? dateCreation { get; set; }
        public DateTime? dateModify { get; set; } = new DateTime();
        public string userId { get; set; }
        public int? zoneId { get; set; }
        public int? equipmentId { get; set; }
        public int? taskId { get; set; }
        public DateTime? dateRevision { get; set; } = new DateTime();

Кто-нибудь знает причину, по которой значение по умолчанию не получается отображается?

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Причина, по которой они не отображаются, заключается в том, что они нулевые!

Что вы говорите в своем классе, так это то, что некоторые свойства МОГУТ быть нулевыми, а если вы не назначите им значение, они будут нулевыми. Таким образом, вы не можете отобразить ноль.

Что вы можете сделать, это использовать Null-Coalescing Operator. Хорошая ссылка: https://www.youtube.com/watch?v=XZpOrdTGUi4&t=85s

Итак

<td>@Html.DisplayFor(model => model.oldId ?? 0)</td>
0 голосов
/ 01 мая 2020

Вы пытались не использовать метод DisplayFor и просто вызывать переменную напрямую, как @ Model.id

...