C# 我想从列表中读取值<;长期>;使用Ajax并分配给不同的HTML元素
我想从C# 我想从列表中读取值<;长期>;使用Ajax并分配给不同的HTML元素,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,我想从列表中读取值。我有一个静态方法,我在action result方法中调用它。该方法由ajax调用调用。我返回多个整数值,我想在不同的HTML元素中显示它们。这是我的密码: public static List<long> GetCounter() { try { var listofcounters = new List<long>(); using (var db = new DatabaseContext())
列表中读取值。我有一个静态方法,我在action result方法中调用它。该方法由ajax调用调用。我返回多个整数值,我想在不同的HTML元素中显示它们。这是我的密码:
public static List<long> GetCounter()
{
try
{
var listofcounters = new List<long>();
using (var db = new DatabaseContext())
{
var usercount = db.User.Select(x => x).Count();
var usercountpending = db.User.Count(x => x.IsApproved == false);
var visitercounts = db.SiteViewers.Count();
var todayvisitscount = db.SiteViewers.Count(x => x.VistedDate == DateTime.Now);
listofcounters.Add(usercount);
listofcounters.Add(usercountpending);
listofcounters.Add(visitercounts);
listofcounters.Add(todayvisitscount);
return listofcounters;
}
}
catch (Exception ex)
{
throw ex;
}
}
[HttpGet]
public ActionResult CounterValues()
{
try
{
var listofcounters = SuperUserManager.GetCounter();
return Json(listofcounters, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
throw ex;
}
}
您当前的代码将返回一个类似于[234456768]
的数组。现在,您不知道数组中的哪个项是UserCount(如果查看服务器代码并找到顺序,您就知道了。但它不是清晰可读的代码!)
我建议您创建一个简单的POCO来表示要发送的数据
public class DashboardVm
{
public long UserCount { set;get;}
public long PendingUserCount { set;get;}
public long VisiterCount { set;get;}
}
让你的GetCounter
方法返回一个实例,而不是long的列表
public DashboardVm GetCounter()
{
var vm=new DashboardVm();
try
{
using (var db = new DatabaseContext())
{
vm.UserCount = db.User.Select(x => x).Count();
vm.PendingUserCount = db.User.Count(x => x.IsApproved == false);
// TO DO : Set other property values as well
}
return vm;
}
catch (Exception ex)
{
// to do : Log the error so you know what went wrong
throw;
}
}
并返回此方法调用的结果,而不是数组
public ActionResult CounterValues()
{
var vm=GetCounter();
return Json(vm, JsonRequestBehavior.AllowGet);
}
现在,在ajax方法的成功回调中,您可以像
success : function(data){
$('#labeluser').text(data.UserCount);
$('#labelpendinguser').text(data.PendingUserCount);
}
success : function(data){
$('#labeluser').text(data.UserCount);
$('#labelpendinguser').text(data.PendingUserCount);
}