0

jq plot を使用して、1 日あたりのレンタカーの棒グラフをプロットしようとしています。x 軸には、日付と 2 つのバー (レンタル済み/未レンタル) が含まれます。現在、これをコントローラーのリストに戻しています。ブレークポイントを設定すると、データが返されることがわかり、その時点でリストに 4 のカウントがあります (DB への Linq クエリで Take(10) が実行されるため、最大値は 10 になります。

したがって、リストの行の例として以下を確認できます

Date         Rented   Not Rented
18/02/2013   100      200

jq プロットの JavaScript は、それが表示されるかどうかを確認するためにハードコードされた値のみを以下に示しますレンタルされていない場合、ティックはその行の対応する日付に置き換えられます

//s1 = Rented Values
//s2 = Not Rented Values
var s1 = [200, 600, 700, 1000];
var s2 = [460, 210, 690, 820];
// Can specify a custom tick Array.
// Ticks should match up one for each y value (category) in the series.
var ticks = ['Date', 'Date', 'Date', 'Date'];

結果のリストを含み、何らかの方法でJSでこれにアクセスできるcshtmlページのHidden Forのようなものを理想的に探していましたか?それは可能ですか?

4

1 に答える 1

2

いつものように、ビュー モデルを定義することから始めます。

public class MyViewModel
{
    public int Rented { get; set; }
    public int NotRented { get; set; }
    public DateTime Date { get; set; }
}

次に、コントローラー アクションでバックエンドにクエリを実行し、このビュー モデルにデータを入力します。

public ActionResult SomeAction()
{
    IEnumerable<MyViewModel> model = ... go query your backend
    return View(model);
}

最後に、強く型付けされたビューで:

@model IEnumerable<MyViewModel>
...
<script type="text/javascript">
    var s1 = @Html.Raw(Json.Encode(Model.Select(x => x.Rented)));
    var s2 = @Html.Raw(Json.Encode(Model.Select(x => x.NotRented)));
    var ticks = @Html.Raw(Json.Encode(Model.Select(x => x.Date.ToString("dd/MM/yyyy"))));

    // Now that you have the 3 arrays plot them up.
</script>
于 2013-02-18T15:05:08.483 に答える