0

2つのレポートをレンダリングする必要があるビューがあります。

私の行動:

public ActionResult TradeUKKPIShowData(SundaysInMonthViewModel model) //show actual data in the view
{
  var tradesmenReportData = _reportingService.GetTradeUKKPITradesmen(model.SelectedSunday);
  var jobSortedReportData = _reportingService.GetTradeUKKPIJobSorted(model.SelectedSunday);
  ViewBag.jobSortedReportDate = model.SelectedSunday;
  ViewBag.addJobSortedModel = jobSortedReportData;
  return View(tradesmenReportData);
}

私の最初の問題は、上記のアクションの最初の2行にあります。ここで何を渡さなければなりませんか?これらの行で発生するコンパイルエラー:

'TradeUK.Services.IReportingService.GetTradeUKKPITradesmen(TradeUK.Entities.Reporting.KPIResults)'にいくつかの無効な引数があります

レポートに必要なすべてのストアドプロシージャは、選択された日付/日曜日です。

私のSundaysInMonthViewModel:

 namespace TradeUK.Admin.Web.ViewModels
 {
    public class SundaysInMonthViewModel
    {
       public IEnumerable<SelectListItem> AllSundays { set; get; }
       public string SelectedSunday { set; get; }
    }
 }

ここでIReportingServices.cs:

IEnumerable<KPIResults> GetTradeUKKPITradesmen(DateTime date);
IEnumerable<KPIResults> GetTradeUKKPIJobSorted(DateTime date);

および上記の実際の方法:

 public IEnumerable<KPIResults> GetTradeUKKPITradesmen(DateTime date)
 {
 }


 public IEnumerable<KPIResults> GetTradeUKKPIJobSorted(DateTime date)
 {
 }

KPIResults:

namespace TradeUK.Entities.Reporting
{
 public class KPIResults
  {
   public virtual string Title { get; set; }
   public virtual int Total { get; set; }
   public virtual int Week6 { get; set; }
   public virtual int Week5 { get; set; }
   public virtual int Week4 { get; set; }
   public virtual int Week3 { get; set; }
   public virtual int Week2 { get; set; }
   public virtual int Week1 { get; set; }
  }
 }

もう1つの問題は、return(View(tradesmenReportData、jobSortedReportData)です。これを実行できますか?実際のビューでは、レポートデータのセットを表示するためにループをforeachする必要があります。

助けてください?ありがとう

4

4 に答える 4

3

あなたの「2番目の問題」について:

いいえ、できません。Modelには 1 つしかありませんViewData。この場合、別のビューモデルを作成する必要があります (または のようなものを使用しますTuple)。

于 2012-08-16T08:36:04.203 に答える
2

最初のモデルを通常どおりに渡しViewBag、次に2 番目のモデルを渡します。

@model YourFirstModelClass

@{
    YourSecondModelClass model2 = ViewBag.YourSecondModel;
}

そして、それであなたが望む効果があります。

したがって、Razor を使用しない場合は、次のようにプライマリの厳密に型指定されたモデルを追加できます。

<%@ Inherits="System.Web.Mvc.ViewPage<PrimaryModelClass>" %>

ViewBag と同様に ViewData の 2 番目

于 2012-08-16T08:38:34.653 に答える
0

2 番目の問題については、両方のテーブルの列のプロパティを持つ 1 つの modelView クラスを作成できます。このモデル クラスから、ビュー ページでデータを表示し、特定のテーブルにデータを保存できます。

于 2012-09-04T10:26:51.177 に答える