Я пытаюсь запустить демонстрацию JQWidgets
, следуя инструкциям в этом ссылка. Но когда я запускаю демонстрацию, я просто печатаю json на веб-странице, как это.
Вот мой HomeController.cs
using JQWidgetGrids.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace JQWidgetGrids.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult DataHandler()
{
List<Employee> employees = EmployeesRepository.GetEmployees();
return Json(new
{
employees
},
JsonRequestBehavior.AllowGet);
}
public ActionResult About()
{
return View();
}
}
}
Вот вид DataHandler
@{
ViewBag.Title = "DataHandler";
}
<title><asp:ContentPlaceHolder ID="TitleContent" /></title>
<link href="~/Content/Site.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="~/Content/jqx.base.css" type="text/css" />
<script type="text/javascript" src="~/Scripts/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="~/Scripts/jqxcore.js"></script>
<script type="text/javascript" src="~/Scripts/jqxdata.js"></script>
<script type="text/javascript" src="~/Scripts/jqxbuttons.js"></script>
<script type="text/javascript" src="~/Scripts/jqxscrollbar.js"></script>
<script type="text/javascript" src="~/Scripts/jqxmenu.js"></script>
<script type="text/javascript" src="~/Scripts/jqxgrid.js"></script>
<script type="text/javascript" src="~/Scripts/jqxgrid.selection.js"></script>
<h2>DataHandler</h2>
<script type="text/javascript">
$(document).ready(function () {
var source =
{
url: "Home/DataHandler",
datatype: "json",
datafields: [{ name: "FirstName" }, { name: "LastName" }, { name: "Product" }, { name: "Price", type: "float" }, { name: "Quantity", type: "int" }, { name: "Total", type: "float" }]
};
var dataAdapter = new $.jqx.dataAdapter(source);
$("#jqxgrid").jqxGrid(
{
source: dataAdapter,
columns: [
{ text: 'First Name', dataField: 'FirstName', width: 100 },
{ text: 'Last Name', dataField: 'LastName', width: 100 },
{ text: 'Product', dataField: 'Product', width: 180 },
{ text: 'Quantity', dataField: 'Quantity', width: 80, cellsalign: 'right' },
{ text: 'Unit Price', dataField: 'Price', width: 90, cellsalign: 'right', cellsformat: 'c2' },
{ text: 'Total', dataField: 'Total', cellsalign: 'right', minwidth: 100, cellsformat: 'c2' }
]
});
});
</script>
<div id="jqxgrid"></div>
А вот и модель Employee
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace JQWidgetGrids.Models
{
public class EmployeesRepository
{
public static List<Employee> GetEmployees()
{
List<Employee> employees = new List<Employee>();
string[] firstNames = new string[] { "Andrew", "Nancy", "Shelley", "Regina", "Yoshi", "Antoni", "Mayumi", "Ian", "Peter", "Lars", "Petra", "Martin", "Sven", "Elio", "Beate", "Cheryl", "Michael", "Guylene" };
string[] lastNames = new string[] { "Fuller", "Davolio", "Burke", "Murphy", "Nagase", "Saavedra", "Ohno", "Devling", "Wilson", "Peterson", "Winkler", "Bein", "Petersen", "Rossi", "Vileid", "Saylor", "Bjorn", "Nodier" };
string[] productNames = new string[] { "Black Tea", "Green Tea", "Caffe Espresso", "Doubleshot Espresso", "Caffe Latte", "White Chocolate Mocha", "Cramel Latte", "Caffe Americano", "Cappuccino", "Espresso Truffle", "Espresso con Panna", "Peppermint Mocha Twist" };
string[] priceValues = new string[] { "2.25", "1.5", "3.0", "3.3", "4.5", "3.6", "3.8", "2.5", "5.0", "1.75", "3.25", "4.0" };
Random random = new Random();
for (var i = 0; i < 100; i++)
{
Employee employee = new Employee();
int productindex = random.Next(productNames.Length);
float price = float.Parse(priceValues[productindex]);
int quantity = 1 + random.Next(10);
employee.FirstName = firstNames[random.Next(firstNames.Length)];
employee.LastName = firstNames[random.Next(lastNames.Length)];
employee.Price = price;
employee.Quantity = quantity;
employee.Product = productNames[productindex];
employees.Add(employee);
}
return employees;
}
}
public class Employee
{
public int ID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Product { get; set; }
public double Price { get; set; }
public int Quantity { get; set; }
public double Total
{
get
{
return this.Price * this.Quantity;
}
}
}
}
ActionResult.View()
- person Lab Lab   schedule 23.08.2017JsonResult
- person   schedule 23.08.2017ActionResult
, но в вашем коде я вижуJsonResult
- person Lab Lab   schedule 23.08.2017DataHandler()
. - person   schedule 23.08.2017DataHandler.cshtml
, что означает, что оно будет вызываться только в том случае, если вы перейдете к своему методуDataHandler
(но этот метод возвращает ваши данные json). Это представление должно быть вашимIndex.cshtml
представлением. - person   schedule 23.08.2017DataHandler()
(либо по ссылке, либо вводя его в адресной строке, что будет отображать это изображение, потому что это то, что возвращает этот метод. - person   schedule 23.08.2017DataHandler
с помощью[HttpPost]
(но не уверен, что это будет работать с вашим плагином), либо украсить его атрибутом[AjaxOnly]
(см. этот ответ), поэтому вы не можете перейти к нему напрямую - person   schedule 23.08.2017