That's an MVC issue. Several reasons are listed
here.
Hi Admin, i have other problem so i need your's help.
My "Web Counter" plugin use global.asax to get user access my shop. I use function Application Start, Session_Start, Session_End:
namespace SmartStore.WebCounter
{
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
Application.Add("Homnay", 0);
Application.Add("HomQua", 0);
Application.Add("TuanNay", 0);
Application.Add("TuanTruoc", 0);
Application.Add("ThangNay", 0);
Application.Add("ThangTruoc", 0);
Application.Add("TatCa", 0);
Application.Add("visitors_online", 0);
}
void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 5;
SmartStoreEntities ctx = new SmartStoreEntities();
Application.Lock();
Application["visitors_online"] = (Convert.ToInt32(Application["visitors_online"]) + 1).ToString("#,###");
Application.UnLock();
try
{
ObjectResult<spThongKe_Edit_Result> Thongkes = ctx.spThongKe_Edit();
var ThongKe = Thongkes.FirstOrDefault();
if (ThongKe != null)
{
Application["HomNay"] = ThongKe.HomNay == 0 ? "0" : long.Parse("0" + ThongKe.HomNay).ToString("#,###");
Application["HomQua"] = ThongKe.HomQua == 0 ? "0" : long.Parse("0" + ThongKe.HomQua).ToString("#,###");
Application["TuanNay"] = ThongKe.TuanNay == 0 ? "0" : long.Parse("0" + ThongKe.TuanNay).ToString("#,###");
Application["TuanTruoc"] = ThongKe.TuanTruoc == 0 ? "0" : long.Parse("0" + ThongKe.TuanTruoc).ToString("#,###");
Application["ThangNay"] = ThongKe.ThangNay == 0 ? "0" : long.Parse("0" + ThongKe.ThangNay).ToString("#,###");
Application["ThangTruoc"] = ThongKe.ThangTruoc == 0 ? "0" : long.Parse("0" + ThongKe.ThangTruoc).ToString("#,###");
Application["TatCa"] = ThongKe.TatCa == 0 ? "0" : long.Parse("0" + ThongKe.TatCa).ToString("#,###");
}
}
catch (Exception)
{
throw;
}
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["visitors_online"] = (Convert.ToInt32(Application["visitors_online"]) - 1).ToString("#,###");
Application.UnLock();
}
}
}
But when i run my shop. Controller don't call to global.asax to get data. Can you help to the way to call global.asax (in other project) when my shop (main project) run or the way to call function Application Start, Session_Start and Session_End.
here my controller:
// GET: WidgetsWebCounter
[ChildActionOnly]
public ActionResult PublicInfo()
{
return View();
}
[HttpGet]
[ChildActionOnly]
public JsonResult Refresh()
{
var visitors_online = HttpContext.Application["visitors_online"] as string;
var HomNay = HttpContext.Application["HomNay"] as string;
var HomQua = HttpContext.Application["HomQua"] as string;
var TuanNay = HttpContext.Application["TuanNay"] as string;
var TuanTruoc = HttpContext.Application["TuanTruoc"] as string;
var ThangNay = HttpContext.Application["ThangNay"] as string;
var ThangTruoc = HttpContext.Application["ThangTruoc"] as string;
var TatCa = HttpContext.Application["TatCa"] as string;
var obj = new { visitors_online, HomNay, HomQua, TuanNay, TuanTruoc, ThangNay, ThangTruoc, TatCa };
return Json(obj, JsonRequestBehavior.AllowGet);
}
Thans you very much!