zoukankan      html  css  js  c++  java
  • 排球计分程序重构(下篇)

     public ActionResult Scores(long page, long limit)
            {
                PetaPoco.Page<CompetitionScore> list = CompetitionScore.Page(page, limit, "select * from CompetitionScore");
                Data data = new Data();
                data.count = list.TotalItems;
                data.data = new List<dynamic>();
                foreach (var item in list.Items)
                {
                    string homeTeamName = Team.FirstOrDefault("where Id=" + item.HomeTeamId + "").TeamName;
                    string guestTeamName = Team.FirstOrDefault("where Id=" + item.GuestTeamId + "").TeamName;
                    string theScore = item.HomeTeamScore.ToString() + "" + item.GuestTeamScore.ToString();
                    data.data.Add(new { HomeTeanName = homeTeamName, GuestTeamName = guestTeamName, Id = item.Id, TheScore = theScore });
                }
                return Json(data, JsonRequestBehavior.AllowGet);
            } 

    先以这块代码为例在Return中返回Json格式的数据,以便前端能够动态加载表格。

    Data中data是一个匿名类型的集合,也就是说无论哪一个模型类,都可以通过这种方式给他转换成一个匿名类并转换为Json格式的数据给传到前台显示。

    @{
        ViewBag.Title = "添加队伍";
    }
    @using (Ajax.BeginForm(new AjaxOptions {
        Url= "/Teams/AddTeam",
        HttpMethod = "Post",
        OnSuccess = "success",
        OnBegin = ""
    }))
    {
        <div class="layui-form" style="100%;height:300px;">
            <div style="margin-left:35%; margin-bottom:30px;margin-top:10px;" ><img class="layui-anim layui-anim-fadein layui-anim-rotate " src="~/Content/Image/rabbit.gif"/></div>
            <div class="layui-form-item">
                <label class="layui-form-label">队名</label>
                <div class="layui-input-block">
                    <input type="text" name="teamName" id="teamName" placeholder="请输入队名" autocomplete="off" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-input-block" style="text-align:center;">
                    <input type="submit" class="layui-btn" id="btn" value="立即提交" />
                </div>
            </div>
        </div>
    }
    <script>
        function success(data) {
            if (data == "添加成功") {
                layer.msg(data, { icon: 1 });
                setTimeout("window.location = '/Teams/GetTeams'", 2000);
            }
            else {
                layer.msg(data, { icon: 2 });
            }
        }
    </script>

    在这段代码中使用了MVC自带的自动生成表格,并且做了一个异步的表格提交,表格以Post方式提交,在Action中进行处理

    [HttpPost]
            public ActionResult AddTeam(string teamName)
            {
                string msg = "";
                if (teamName == "" || teamName == null)
                {
                    msg = "请输入队名";
                }
                else
                {
                    Team team = new Team();
                    team.TeamName = teamName;
                    db.Insert(team);
                    msg = "添加成功";
                }
                return Json(msg);
            } 

    还有其他的一些异步处理的方法。比如在计分控制器中,很多地方用到,前端判断比赛是否一局比赛结束,结束就进行异步添加一条记录等等。

  • 相关阅读:
    [haoi2011]向量
    [haoi2008]硬币购物
    noi2001 [食物链]并查集p1697
    [haoi2012]容易题(数论+容斥的思想)
    p1620田忌赛马(贪心+模拟)
    p1368[扑街]广场铺砖
    [zjoi2010]网络扩容
    是时候写一篇总结了
    P1630 求和
    魔术棋子
  • 原文地址:https://www.cnblogs.com/colorful-Ji/p/7499950.html
Copyright © 2011-2022 走看看