在Javascript文件中引用ASP.NET MVC控制器中的数据

时间:2017-12-22 20:48:24

标签: javascript c# asp.net asp.net-mvc

我目前正在开发一个实现ComponentOne studio的Wijmo框架的项目,我已经构建了一个网格,该网格使用从模型传递的数据,该模型基本上为单个销售构建了一些虚拟数据。

然后我在我的Controller文件中调用public static IEnumerable,该文件传递要创建的数据条目数的值。这是传递给我的索引cshtml文件的视图,其中正在构建数据网格。

我试图弄清楚当我在JS文件中编写函数时如何调用已创建的数据。我希望能够获取由我的控制器中的int值(比如100个条目)生成的集合数据,然后创建我正在过滤的数据的视图。但是,我无法弄清楚如何传递初始数据,这样当我在其上运行过滤器时,我可以引用该数据来保存输出视图并运行辅助过滤器。

我基本上需要弄清楚JS中的引用不仅仅是模型,还有控制器中带有int值的模型。

这是模型文件:

using System;
using System.Collections.Generic;
using System.Linq;

namespace FilterPanel.Models
{
    public class Sale
{
    public int ID { get; set; }
    public DateTime Start { get; set; }
    public string Country { get; set; }
    public string Product { get; set; }
    public bool Active { get; set; }

    private static List<string> COUNTRIES = new List<string> { "US", "UK", "Canada", "Japan", "China", "France", "German", "Italy", "Korea", "Australia" };
    private static List<string> PRODUCTS = new List<string> { "Widget", "Gadget", "Doohickey" };

    /// <summary>
    /// Get the data.
    /// </summary>
    /// <param name="total"></param>
    /// <returns></returns>
    public static IEnumerable<Sale> GetData(int total)
    {
        var rand = new Random(0);
        var dt = DateTime.Now;
        var list = Enumerable.Range(0, total).Select(i =>
        {
            var country = COUNTRIES[rand.Next(0, COUNTRIES.Count - 1)];
            var product = PRODUCTS[rand.Next(0, PRODUCTS.Count - 1)];
            var startDate = new DateTime(dt.Year, i % 12 + 1, 25);

            return new Sale
            {
                ID = i + 1,
                Start = startDate,
                Country = country,
                Product = product,
                Active = (i % 4 == 0)
            };
        });
        return list;
    }
}

}

然后我在控制器文件中引用此函数:

using FilterPanel.Models;
using System.Linq;
using System.Web.Mvc;

namespace FilterPanel.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View(Sale.GetData(100).ToList());
        }
    }
}

最后尝试使用&#34; data&#34;在我的JS文件中调用该数据。是我试图传递的Sale.GetData(100)的占位符

var view = new wijmo.collections.CollectionView(data);

  // create a second CollectionView based on the first one
  var view2 = new wijmo.collections.CollectionView(view.items, {
        collectionChanged: function(s) {
        var cnt = document.getElementById('cnt');
      cnt.textContent = wijmo.format('{length:n0}', s.items)
  }
});

0 个答案:

没有答案