万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!

模仿论坛结构,数据库如下:

 

 其中id是自增编号,后面几列依次是:标题、内容、作者。

设计界面大致如下:

 

按照设计,控制器应当包含5个action。

public ActionResult Index()
        {
            //初始化、查询数据库并显示数据,返回首页
            return View();
        }
        public ActionResult Modi(int id)
        {
            //根据id初始化修改页面
            return View();
        }
        public ActionResult DoAdd(string bt,string nr,string zz)
        {
            //向数据库添加记录
            return Redirect("/Home/Index");
        }
        public ActionResult DoDel(int id)
        {
            //删除置顶id的记录
            return Redirect("/Home/Index");
        }
        public ActionResult DoModi(int id,string bt, string nr, string zz)
        {
            //修改指定记录
            return Redirect("/Home/Index");
        }

其中,return Redirect表示重定向。因此整个例子只有2个视图。

即:显示帖子列表(和新增界面)的index和提供修改页面的modi。

index页面内容如下:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div style="width:80%; margin:0 auto; margin-top:30px; text-align:center;">
        @if (ViewData["d"] != null)
        {
            <h3>帖子列表</h3>
            <table style="width: 100%; border-color:black; padding:0px; border-collapse:collapse;" border='1'>

                @{
            var a = (System.Data.DataTable)ViewData["d"];
            <tr>
                @*@for (int j = 0; j < a.Columns.Count; j++)
                {
                    <td>@a.Columns[j].ColumnName</td>
                }*@
                <td>序号</td><td>标题</td><td>内容</td><td>作者</td><td>操作</td>
            </tr>
            for (int i = 0; i < a.Rows.Count; i++)
            {
                <tr>
                    @for (int j = 0; j < a.Columns.Count; j++)
                    {
                        <td>@(a.Rows[i][j])</td>
                    }
                    <td><a href="/Home/DoDel/@a.Rows[i][0]">删除</a>&nbsp;<a href="/Home/Modi/@a.Rows[i][0]">修改</a></td>
                </tr>
            }
                }
            </table>
        }
        <hr />
        <br /><br />
        <h3>发表文章</h3>
        <form action="/Home/DoAdd" method="post">
            标题:<input type="text" name="bt"><br /><br />
            内容<br /><textarea cols="40" rows="10" name="nr">这里填写内容</textarea><br /><br />
            作者:<input type="text" name="zz"><br /><br />
            <input type="submit" value="发表" />
        </form>
    </div>
</body>
</html>

modi页面内容如下:

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Modi</title>
</head>
<body>
    <div> 
        <form action="/Home/DoModi" method="post">
            @{
                var a = (System.Data.DataTable)ViewData["d"];
            }
            ID:<input type="hidden" name="id" value="@a.Rows[0][0]" />
            标题:<input type="text" name="bt" value="@a.Rows[0][1]"><br />
            内容:<textarea cols="10" rows="5" name="nr">@a.Rows[0][2]</textarea><br />
            作者:<input type="text" name="zz" value="@a.Rows[0][3]"><br />
            <input type="submit" value="修改" />
        </form>
    </div>
</body>
</html>

控制器内action全代码如下:

public ActionResult Index()
        {
            Access.init_db(Db_type.SqlServer, "10.10.45.52", "sa", "123456", "d1");
            string sql = "select * from t1";
            DataTable dt = Access.get_datatable(sql);
            ViewData["d"] = dt;
            return View();
        }
        public ActionResult Modi(int id)
        {
            string sql = "select * from t1 where id=" + id; ;
            DataTable dt = Access.get_datatable(sql);
            ViewData["d"] = dt;
            return View();
        }
        public ActionResult DoAdd(string bt,string nr,string zz)
        {
            string sql = "insert into t1(bt,nr,zz) values('"+bt+"','"+nr+"','"+zz+"')";
            Access.do_nonquery(sql);
            return Redirect("/Home/Index");
        }
        public ActionResult DoDel(int id)
        {
            string sql = "delete from t1 where id="+id;
            Access.do_nonquery(sql);
            return Redirect("/Home/Index");
        }
        public ActionResult DoModi(int id,string bt, string nr, string zz)
        {
            string sql = "update t1 set bt='"+bt+"',nr='"+nr+"',zz='"+zz+"' where id="+id;
            Access.do_nonquery(sql);
            return Redirect("/Home/Index");
        }

至此,功能完成,界面有点丑。。。

posted on 2020-10-05 12:30  万金流  阅读(912)  评论(0编辑  收藏  举报