0

ここ数日、エンティティ フレームワーク内のエンティティのプロパティ (列) を取得し、そこから平均を取得して JSON に渡すためのさまざまなメソッドを読み込んでテストしようとしました。私は何度か近づいてきましたが、いつも失敗しました。最後に、JSON を取得したら、それをインデント形式で返し、JQuery 視覚化ライブラリで使用したいと考えています。

私のコントローラーはここにあります:

    public virtual JsonResult GetData()
    {
        var result = new FactSurveryResultsQueries().GetAverages();
        return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = result };
    }

ここに私のビューモデルがあります:

namespace Provider.Models
{
    public class FactSurveyResultsViewModel //: BaseGraphViewModel
    {
        public FactSurveyResultsViewModel() { }
        //public List<KPIUserControl> customerSatisfactionChart = new List<KPIUserControl>();
        ////public List<string> customerSatisfactionChart = new List<string>();
        //public Dictionary<string, decimal> a { get; set; }
        public double? EaseRequestingHelp { get; set; }
        public double? TimeReachQualifiedTech { get; set; }
        public double? TimeProvideSolution { get; set; }
        public double? CompletenessOfSolution { get; set; }
        public double? TechAbilityProdKnowledge { get; set; }
        public double? HowWellKeptInformed { get; set; }
        public double? OverallServiceOpinion { get; set; }

    }
}

最後に、これは現在nullですが、1つのプロパティのみを取得して平均化するための現在の反復です。

namespace Provider.Queries
{
    public class FactSurveryResultsQueries
    {
        public FactSurveyResultsViewModel GetAverages()
        {
            var result = new FactSurveyResultsViewModel();
            using (var db = new ATSNavigatorDBEntities())
            {
                var thing =
                    from p in db.Fact_SurveyResults
                    group p by 1 into a
                    select new FactSurveyResultsViewModel { EaseRequestingHelp = a.Average(p.EaseRequestingHelp)};
            }
            return result;
        }
    }
}

1 つのプロパティを取得し、コントローラーからインデントされた JSON としてアクセスできるようにして、それを消費し、これを他のプロパティに複製できるようにする方法を誰か教えてもらえますか? ありがとう。

4

1 に答える 1

1

Json.NET を使用して、.NET オブジェクトを JSON にシリアル化できます。インデントされた JSON を生成するフォーマット オプションがあります。

Visual Studio 内から NuGet を介して Json.NET をインストールできます。インストールしたら、JsonConvert.SerializeObject()メソッドを介してシリアル化できます。

于 2013-03-10T02:07:28.287 に答える