|
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í.
- public class User
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int CoopTime { get; set; }
- public DateTime JoinTime { get; set; }
- }
Copiar códigoLo 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. - public ActionResult Index()
- {
- return View();
- }
- public ActionResult GetStatus()
- {
- User user = new User()
- {
- Id = 1,
- Name = "某某用户",
- CoopTime = 1,
- JoinTime = new DateTime(2014, 3, 20)
- };
- //判断合作是否已经到期
- int result = DateTime.Compare(DateTime.Now, user.JoinTime.AddYears(user.CoopTime));
- if (result <= 0) //当前时间比合作到期时间早,合作未到期
- {
- //计算时间
- var pastDays = (DateTime.Now.Subtract(user.JoinTime)).TotalDays;
- var oneYearDays = (user.JoinTime.AddYears(user.CoopTime).Subtract(user.JoinTime)).TotalDays;
- var pastPercentage = (pastDays / oneYearDays) * 100;
- var dataSuccess = new { msg = true, p = pastPercentage };
- return Json(dataSuccess, JsonRequestBehavior.AllowGet);
- }
- else //当前时间比合作到期时间晚,合作已到期
- {
- var dataFail = new { msg = false, p = 100 };
- return Json(dataFail, JsonRequestBehavior.AllowGet);
- }
- }
- }
Copiar códigoEncima ● 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. - <head>
- <meta name="viewport" content="width=device-width" />
- <title>Index</title>
- <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
- <scrip{过滤}t src="~/scrip{过滤}ts/jquery-1.8.2.min.js"></scrip{过滤}t>
- <scrip{过滤}t src="~/scrip{过滤}ts/jquery-ui-1.8.24.min.js"></scrip{过滤}t>
- <scrip{过滤}t type="text/javascrip{过滤}t">
- $(function () {
-
- $.getJSON('@Url.Action("GetStatus","Home")', function(data) {
- if (data.msg == true) {
- var temp = parseInt(data.p);
- $('#p').progressbar({
- value: temp
- });
- } else {
- $('#message').text('已到期');
- $('#p').progressbar({
- value: parseInt(data.p)
- });
- }
- });
- });
- </scrip{过滤}t>
- </head>
- <body>
- <div id="p">
- </div>
- <div>
- <span id="message"></span>
- </div>
- </body>
Copiar código
|