0

我在数据库中有两个名为 ProjectList 和 TaskList 的表。TaskList 表列是任务名称、描述、开始日期、结束日期、状态、项目。项目列存储项目名称。每个项目都有 No.of Tasks。我有一个名为 ProjectDetails、TaskDetails 的两个视图。我正在根据项目名称动态获取 ProjectDetails 页面,它将重定向到 TaskDetails 页面。现在我需要根据任务(已完成任务的总数/总任务)计算每个任务的项目百分比。

我怎样才能实现这一点,请帮助我。

ProjectDetails 页面的代码如下

 @foreach (var item in Model)
 {
   @if (item.ProjectStatus == "OnGoing")
    {
      <div class="col-lg-4 col-md-12 cur-pointer">
        <div class="card">
        <div class="card-header">
        <h5 class="card-title">@Html.DisplayFor(modelItem => item.ProjectName)</h5>
        <div class="card-options">
        <a asp-action="EditProject" asp-route-id="@item.ProjectID">
        <i class="fa fa-edit icon-size icon-align"></i>
        </a>
        <a href="#" class="card-options-collapse" data-toggle="card-collapse"></a>
        </div>
        </div>
        <a asp-action="AllTask" asp-route-id="@item.ProjectName" style="color:#000 !important">
        <div class="card-body cur-pointer">
        <p class="tag tag-blue mb-3">@Html.DisplayFor(modelItem => item.ProjectStatus)</p>
        <p>@Html.DisplayFor(modelItem => item.ProjectDescription)</p>
        <div class="row">
        <div class="col-5 py-1"><strong>Scope:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.ProjectScope)</div>
        <div class="col-5 py-1"><strong>Family:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.ProjectFamily)</div>
        <div class="col-5 py-1"><strong>Bucket:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.ProjectBucket)</div>
        <div class="col-5 py-1"><strong>Manager:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.Manager)</div>
        <div class="col-5 py-1"><strong>Start Date:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.StartDate)</div>
        <div class="col-5 py-1"><strong>End Date:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.EndDate)</div>
        <div class="col-5 py-1"><strong>Cost:</strong></div>
        <div class="col-7 py-1">@Html.DisplayFor(modelItem => item.Budget)</div>
        </div>
        </div>
        <div class="float-left"><strong>**TaskPErcentage**%</strong></div>
        <div class="float-right"><small class="text-muted">Progress</small>'
        </div>

        </a>
        </div>
        </div>
    }
 }

我的控制器是:

 public IActionResult AllProject()
    {
        List<Project> lstProject = new List<Project>();
        lstProject = objproject.GetAllProject().ToList();
        return View(lstProject);
    }
4

1 回答 1

0

在 TaskDetails 页面中:可能您正在从 ProjectDetails 获取与相应 ProjectName 相关的所有任务。因此,只需根据任务状态在您的 foreach 中执行操作:

before foreach : $completed = $totalTask = 0;


$totalTask++;

@if(item.ProjectStatus == "completed")
{
     $completed++;
}

$percentage  = ((int)$completed / (int) $totalTask ) * 100
于 2019-12-31T07:19:29.927 回答