2
これら2つのクエリのグラフにデータを表示する必要があります。一度に1つずつ棒グラフでデータを表示することができます。しかし、私はそれらを同じページに一緒に表示したい。ここで1つのモデルを使用して2つのLINQクエリを表示して表示する
public ActionResult Daily(string label)
{
var DataContext = new BalanceDataContext();
var month = label.Split('-')[0];
var year = label.Split('-')[1];
//Percentage of Estimated Electric Bills
var rdcd = new string[] { "CE", "IE" };
var totalEstimated = (from a in DataContext.pujhaccds
join b in DataContext.pujhmtrds
on a.billnumber equals b.billnumber
where year.Equals(a.billdate.Value.Year)
&& month.Equals(a.billdate.Value.Month)
&& rdcd.Contains(b.reading_code)
group a by new {a.billdate.Value.Day} into p
orderby p.Key.Day ascending
select new Date1() { theDay2 = p.Key.Day, theCount2 = p.Count() });
var totalday = (from m in DataContext.pujhaccds
where month.Equals(m.billdate.Value.Month) &&
year.Equals(m.billdate.Value.Year)
group m by new { m.billdate.Value.Day } into p
orderby p.Key.Day ascending
select new Date1() { theDay = p.Key.Day, theCount = p.Count() });
int monthInt = 0;
Int32.TryParse(month, out monthInt);
string strMonthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthInt);
ViewBag.Message = "Bills for: " + strMonthName + year;
return View(new QueryView { Date2 = totalEstimated, Date1 = totalday.ToArray() });
}
モデルは次のようになります。
public class Date1
{
public string Month { get; set; }
public string Year { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? DateStart { get; set; }
public DateTime? DateEnd { get; set; }
public int theDay { get; set; }
public int theDay2 { get; set; }
public string theString { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MMMM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime? theDate { get; set; }
public int theCount { get; set; }
public int theCount2 { get; set; }
}
私は、データを保持するための別のモデルを作成しようとしましたが、それは
public class QueryView
{
public IEnumerable<Date1> Date1 { get; set; }
public IEnumerable<Date1> Date2 { get; set; }
}
を動作するようには思えない私が持っていますこれは私の見解の一番上にあり、エラーメッセージは表示されません:
@model CWebPortal.Models.QueryView
私はこれを持っていたとき、私が得たエラー:
@model IEnumerable<CWebPortal.Models.QueryView>
これは動作しますが、唯一のコントローラから1つのクエリのために:
@model IEnumerable<CWebPortal.Models.Date1>
これは私がグラフのデータをつかんだ方法です表示:
jQuery(function ($) {
$.jqplot.config.enablePlugins = true;
var items = @Html.Raw(Json.Encode(Model));
var ticks = [];
var s1 = [];
var s2 = [];
for (var i = 0; i < items.length; i++) {
ticks.push(items[i].theDay);
s1.push(items[i].theCount);
}
どのように私のビューに両方のクエリを取得できますか?