MVC: невозможно обновить одно из свойств моей модели - PullRequest
0 голосов
/ 28 февраля 2020

В моем контроллере mvc я использую модель для заказов. Одно из свойств в моей модели Order называется StatusDes c (Описание состояния). Когда я первоначально получаю этот статус через базу данных, он успешно заполняет мою модель, включая это свойство StatusDes c, однако, если позже я go обновлю StatusDes c через код, он не обновится, и я не уверен почему. Вот мой код: Переходя к этому коду, StatusDes c = "Завершено"

Модель моего заказа:

private string _statusDesc;

    [Display(Name = "Status")]
    public string StatusDesc
    {
        get { return GetOrderHelper.GetOrderStatusDesc(this); }
        set { _statusDesc = value; }
    }

Мой класс OrderHelper содержит метод, помогающий определить статус заказа ( Завершено, активно или удалено):

public class OrderHelper
{
    public string GetOrderStatusDesc(Order order)
    {
        return order.CompletedDate != null ? "Completed" : (order.Active ? "Active" : "Deleted");
    }
}

Однако в моем контроллере я пытаюсь обновить StatusDes c модели заказа, и он не будет обновляться.

//Before code is run --> order.StatusDesc = "Completed"
 order.StatusDesc = "Pending";
 //After code is run --> order.StatusDesc = "Completed"

Что я делаю неправильно, что помешало бы моим StatusDes c обновиться до "Ожидание"?

Спасибо

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

потому что вы читаете значение StatusDes c из другого свойства.

return order.CompletedDate != null ? "Completed" : (order.Active ? "Active" : "Deleted");

StatusDes c значения основаны на значении CompletedDate;

0 голосов
/ 28 февраля 2020

Вы возвращаете «Завершено», «Активно» и «Удалено». Даже если вы обновите StatusDes c, он никогда не вернет значение, которое использовалось для его обновления. Вам может понадобиться условие, которое говорит, что если StatusDes c не равно нулю или не пусто, тогда вернуть StatusDes c.

...