|
전자상거래 웹사이트에서는 진행 바가 사용자가 제출 예정일과 현재 상태를 시각적으로 표시하는 데 사용되기도 합니다.
그런 모델을 설계하세요.
- public class User
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int CoopTime { get; set; }
- public DateTime JoinTime { get; set; }
- }
코드 복사위에 언급한 것은 협력 지속 시간 속성인 CoopTime과 조인타임 속성인 JoinTime으로, 진행 상황과 밀접하게 연관된 두 속성입니다.
HomeController에서는 인터페이스를 표시하는 데 액션 메서드를 사용하고, 뷰에서 GET 요청을 받고 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);
- }
- }
- }
코드 복사위에서, ● DateTime Compare 정적 방법을 사용하여 두 번을 비교하세요. 하나는 현재 시간이고 다른 하나는 조인 시간 + 협력 시간입니다. 결과가 0 이하라면 만료가 없다는 뜻입니다. ● DateTime, Detract의 정적 방법을 사용하여 2배를 빼세요.
Home/Index.cshtml은 페이지가 로드될 때 서버에 비동기식 GET 요청을 보내 반환된 데이터를 진행 바에 표시합니다. - <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>
코드 복사
|