如何显示控制器的值?


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);
}

我有上面的代码来显示这个表:红色标记现在我添加了上面强调的代码,以便我可以在蓝色标记的卡片中显示它:蓝色标记。如何在视图中显示变量的值?是否可以在单个控制器中使用多个视图?谢谢。

似乎您要查找的是在一个视图中显示多个视图,因为从控制器中您只能返回一个视图,在您的情况下Dashboard(当您不指定时,它们必须与方法同名)

您可以使用分部视图执行此操作。 这取决于您是哪个版本,如果是.NET框架,网络核心等,如果您正在使用Razor或任何其他框架作为前端。 如果您使用的是 Razor,如果您键入@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);

取决于您正在运行的版本/框架。

最新更新