|
Verkkokaupoilla edistymispalkkia käytetään joskus visuaalisesti näyttämään, onko käyttäjä erääntynyt ja käyttäjän nykyinen tila.
Suunnittele tällainen malli.
- public class User
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int CoopTime { get; set; }
- public DateTime JoinTime { get; set; }
- }
Kopioi koodiYllä oleva on yhteistyön kesto-attribuutti CoopTime ja jointime-attribuutti JoinTime ovat kaksi attribuuttia, jotka liittyvät läheisesti edistymiseen.
HomeControllerissa käyttöliittymän näyttämiseen käytetään toimintometodia, ja toimintomenetelmää käytetään GET-pyyntöjen vastaanottamiseen näkymästä ja json-tietojen palauttamiseen. - 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);
- }
- }
- }
Kopioi koodiYllä, ● Käytä staattista DateTime Compare -menetelmää vertaillaksesi kahta kertaa, toinen on nykyinen aika, toinen on liitosaika + yhteistyön kesto; jos tulos on pienempi tai yhtä suuri kuin 0, se tarkoittaa, ettei vanhenemista. ● Käytä staattista DateTime-menetelmää, vähennetään kaksi kertaa.
Home/Index.cshtml, kun sivu on ladattu, lähetä palvelimelle asynkroninen GET-pyyntö, joka näyttää palautetut tiedot edistymispalkissa. - <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>
Kopioi koodi
|