Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 14302|Respuesta: 0

[ASP.NET] MVC implementa una barra de progreso sobre el tiempo, usando la barra de progreso de la interfaz de jQuery

[Copiar enlace]
Publicado en 5/10/2015 16:05:23 | | | |
En los sitios web de comercio electrónico, la barra de progreso a veces se utiliza para mostrar visualmente si un usuario tiene que cumplir y cuál es su estado actual.

Diseña un modelo así.

  1. public class User
  2.     {
  3.         public int Id { get; set; }
  4.         public string Name { get; set; }
  5.         public int CoopTime { get; set; }
  6.         public DateTime JoinTime { get; set; }
  7.     }
Copiar código
Lo anterior es el atributo de duración de cooperación CoopTime y el atributo de tiempo de unión JoinTime son dos atributos estrechamente relacionados con el progreso.

En HomeController, se utiliza un método de acción para mostrar la interfaz, y un método de acción para recibir solicitudes GET de la vista y devolver datos json.
  1. public ActionResult Index()
  2.         {
  3.             return View();
  4.         }
  5.         public ActionResult GetStatus()
  6.         {
  7.             User user = new User()
  8.             {
  9.                 Id = 1,
  10.                 Name = "某某用户",
  11.                 CoopTime = 1,
  12.                 JoinTime = new DateTime(2014, 3, 20)
  13.             };
  14.             //判断合作是否已经到期
  15.             int result = DateTime.Compare(DateTime.Now, user.JoinTime.AddYears(user.CoopTime));
  16.             if (result <= 0) //当前时间比合作到期时间早,合作未到期
  17.             {
  18.                 //计算时间
  19.                 var pastDays = (DateTime.Now.Subtract(user.JoinTime)).TotalDays;
  20.                 var oneYearDays = (user.JoinTime.AddYears(user.CoopTime).Subtract(user.JoinTime)).TotalDays;
  21.                 var pastPercentage = (pastDays / oneYearDays) * 100;
  22.                 var dataSuccess = new { msg = true, p = pastPercentage };
  23.                 return Json(dataSuccess, JsonRequestBehavior.AllowGet);
  24.             }
  25.             else //当前时间比合作到期时间晚,合作已到期
  26.             {
  27.                 var dataFail = new { msg = false, p = 100 };
  28.                 return Json(dataFail, JsonRequestBehavior.AllowGet);
  29.             }
  30.         }
  31.     }
Copiar código
Encima
● Utiliza el método estático de Comparación FechaHora para comparar 2 veces, una es el tiempo actual y la otra es el tiempo de unión + duración de cooperación; si el resultado es menor o igual a 0, significa que no hay caducidad.
● Utiliza el método estático de FechaTiempo, Resta, para restar 2 veces.

Home/Index.cshtml, cuando se carga la página, envía una solicitud GET asíncrona al servidor para mostrar los datos devueltos en la barra de progreso.
  1. <head>
  2.     <meta name="viewport" content="width=device-width" />
  3.     <title>Index</title>
  4.     <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
  5.     <scrip{过滤}t src="~/scrip{过滤}ts/jquery-1.8.2.min.js"></scrip{过滤}t>
  6.     <scrip{过滤}t src="~/scrip{过滤}ts/jquery-ui-1.8.24.min.js"></scrip{过滤}t>
  7.     <scrip{过滤}t type="text/javascrip{过滤}t">
  8.         $(function () {
  9.             
  10.             $.getJSON('@Url.Action("GetStatus","Home")', function(data) {
  11.                 if (data.msg == true) {
  12.                     var temp = parseInt(data.p);
  13.                     $('#p').progressbar({
  14.                         value: temp
  15.                     });
  16.                 } else {
  17.                     $('#message').text('已到期');
  18.                     $('#p').progressbar({
  19.                         value: parseInt(data.p)
  20.                     });
  21.                 }
  22.             });
  23.         });
  24.     </scrip{过滤}t>
  25. </head>
  26. <body>
  27.     <div id="p">      
  28.     </div>
  29.     <div>
  30.         <span id="message"></span>
  31.     </div>
  32. </body>
Copiar código






Anterior:Utiliza la nueva versión de Baidu Cloud para acelerar la protección de sitios web y bloquear el acceso a direcciones IP no CDN
Próximo:SoftEther VPN Client es un software VPN verdaderamente gratuito
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com