Как отобразить значения из контроллера? - PullRequest
0 голосов
/ 18 апреля 2020
public ActionResult Dashboard()
    {
        var data = Processor.LoadBarangays();
        List<BarangayModel> barangays = new List<BarangayModel>();

        **int totalConfirmed = 0;
        int totalPUI = 0;
        int totalPUM = 0;**

        foreach (var row in data)
        {
            ***totalConfirmed = +row.Confirmed;
            totalPUI = +row.PUI;
            totalPUM = +row.PUM;***

            barangays.Add(new BarangayModel
            {
                Barangay = row.Barangay,
                Confirmed = row.Confirmed,
                PUI = row.PUI,
                PUM = row.PUM
            });
        }

        return View(barangays);
    }

У меня есть вышеуказанный код для отображения этой таблицы: красная метка теперь я добавил коды, выделенные выше, чтобы я мог показать их в карточках с синей меткой: синяя метка . Как я могу отобразить значения переменных в представлении? Могу ли я использовать несколько представлений в одном контроллере? Спасибо.

1 Ответ

0 голосов
/ 18 апреля 2020

Похоже, что вы ищете, чтобы показать несколько представлений в одном представлении , так как из контроллера вы можете вернуть только один, в вашем случае Dashboard (когда вы не указали, они имеют должно совпадать с именем метода)

Вы можете сделать это с частичным представлением. и это немного зависит от того, в какой версии вы находитесь, если. NET framework, net core et c, также если вы используете бритву или любую другую платформу для внешнего интерфейса. если вы используете бритву, если вы наберете @HTML.Partial("viewname"), то загрузите частичное представление внутри вашего "основного" представления. и вы можете отправить модель (объект) к нему в качестве второго параметра @HTML.Partial("viewname", model)

для вашего примера, вы возвращаете return View(barangays);, который является красным полем. затем включить синие, что вам нужно сделать, это расширить вашу модель. таким образом, ваш BarangayModel должен стать DashboardModel, а одно из свойств должно быть List<BarangayModel>.

class DashboardModel{
   public List<BarangayModel> BarangayModelList {get;set;}
}

. Причина, по которой вы должны это сделать, заключается в том, что вы должны добавить свое красное поле. чтобы не вызвать объект PersonStatus и пример будет выглядеть так:

class PersonStatus{
    int confirmed {get;set;}
    int recovered {get;set;}
    //rest of the properteis
}

, а затем вы расширите свой DashboardModel, чтобы он содержал этот новый объект:

class DashboardModel{
   public List<BarangayModel> BarangayModelList  {get;set;}
   public PersonStatus PersonStatus {get;set;}
}

, поэтому в вашем Dashboard.cshtml Теперь вам нужно указать новую модель. Обычно это происходит в первой строке представления. И, похоже, это @model List<BarangayModel>, вам нужно будет обновить его до @model DashboardModel

, так как вы переключитесь на List<BarangayModel> на новый, foreach для печати таблицы потерпит неудачу. это означает, что у вас, вероятно, есть что-то вроде foreach(var bm in Model), теперь вам нужно обновить его до foreach (var bm in Model.BarangayModel)

, теперь у вас есть обе данные в представлении, но вы печатаете только BarangayModel

то, что вам нужно сделать, находится в той же папке, в которой это представление (или в Shared) создает представление, которое получит новый объект PersonStatus в качестве параметра.

, затем вам нужно вызвать это частичное представление вашего основного представления с передачей параметра:

@Html.Partial("PersonStatusView", Model.PersonStatus);

или

<partial name="PersonStatusView" model="@Model.PersonStatus);

зависит от того, какую версию / среду вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...