【问题标题】:pass dynamic summary queries to an MVC view from an EF model将动态摘要查询从 EF 模型传递到 MVC 视图
【发布时间】:2017-01-08 17:28:46
【问题描述】:

将 Laravel 中的代码翻译成 asp.net mvc。我正在传递模型的一个子集并按年份汇总这些字段。我的 EF 模型有 50 多个字段。

这是我的 Laravel 路线:

Route::get('/metrics', 'MetricsController@index');

我的 Laravel 控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;

class MetricsController extends Controller
{
    public function index()
    {
         $metrics = DB::select('select year(date_id) as Year, Sum(Revenue) from metrics Group By year(date_id)');

        return ($metrics);
    }
}

我想在视图的@foreach 循环中显示模型数据? Laravel 视图中的转储以下列方式显示数据。

[{"Year":2009,"Sum(Revenue)":"61302670.65"},
 {"Year":2011,"Sum(Revenue)":"68397989.00"},
 {"Year":2012,"Sum(Revenue)":"69245803.00"},   
 {"Year":2013,"Sum(Revenue)":"67184051.00"},
{"Year":2014,"Sum(Revenue)":"33445434.00"}]

【问题讨论】:

  • 您是否已经有一些您开始的 C#/MVC 代码?如果是这样,您可以将其添加到您的问题中吗?

标签: asp.net-mvc entity-framework model-view-controller laravel-5


【解决方案1】:

我会保持简单,坚持您需要在视图中显示数据这一事实。为此,我假设您已经准备好 DbContext、模型和数据加载部分。

型号

为了举例,我将创建一个示例模型。但显然,它可以更先进。

public class Result
{
    public string Year { get; set; }
    public decimal SumRevenue { get; set; }
}

动作方法(在控制器中)

这里最重要的是您正在加载“列表”模型作为查询的结果。当您使用 EF 时,您可以直接从 DbContext 加载它,或者可能使用存储库模式。既然我们不知道,我只是在做一个简单的方法调用,所以想象一下数据库逻辑就在那里:)

public ActionResult Index()
{
    // Here is where you load your data. I am using this line just as example.
    List<Result> resultList = RandomLibrary.LoadData();

    return View(resultList)
}

查看

记得准备好你的 View 来接收你在 Action Method 中得到的 List。

@model List<Result>

@foreach(var item in Model)
{
    <p>
        <strong>Year: </strong>@item.Year
        <br />
        <strong>Sum of revenue: </strong>@item.SumRevenue
    </p>
}

这是对流程的过度简化。您可以在official documentation 中查看更多详细信息。或者,如果您需要更详细的解释,请告诉我们,因为您的情况可能会有所不同。

【讨论】:

  • 谢谢,我发现 Micro ORM 应该可以做到,但是您的回答也是一个可行的解决方案!
猜你喜欢
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多