【橙子】.NetMvc--制作一个含有发帖回复功能的论坛

作者的话
这个确实花了很多心血
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写
目前持续还在更新

效果展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

核心代码

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using YiCraft.Models;

namespace YiCraft.Controllers
{
    public class yicraft_infosController : Controller
    {
        private YiCraftCoreEntities2 db = new YiCraftCoreEntities2();

        // GET: yicraft_infos
        public ActionResult Index()
        {
            return View(db.yicraft_infos.ToList());
        }

        // GET: yicraft_infos/Details/5
        public ActionResult Details(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            yicraft_infos yicraft_infos = db.yicraft_infos.Find(id);
            if (yicraft_infos == null)
            {
                return HttpNotFound();
            }
            return View(yicraft_infos);
        }

        // GET: yicraft_infos/Create
        public ActionResult Create()
        {
            return View();
        }

        // POST: yicraft_infos/Create
        // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 
        // 详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=317598。
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "ID,loginname,balance,status")] yicraft_infos yicraft_infos)
        {
            if (ModelState.IsValid)
            {
                db.yicraft_infos.Add(yicraft_infos);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(yicraft_infos);
        }

        // GET: yicraft_infos/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            yicraft_infos yicraft_infos = db.yicraft_infos.Find(id);
            if (yicraft_infos == null)
            {
                return HttpNotFound();
            }
            return View(yicraft_infos);
        }

        // POST: yicraft_infos/Edit/5
        // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 
        // 详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=317598。
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "ID,loginname,balance,status")] yicraft_infos yicraft_infos)
        {
            if (ModelState.IsValid)
            {
                db.Entry(yicraft_infos).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(yicraft_infos);
        }

        // GET: yicraft_infos/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            yicraft_infos yicraft_infos = db.yicraft_infos.Find(id);
            if (yicraft_infos == null)
            {
                return HttpNotFound();
            }
            return View(yicraft_infos);
        }

        // POST: yicraft_infos/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            yicraft_infos yicraft_infos = db.yicraft_infos.Find(id);
            db.yicraft_infos.Remove(yicraft_infos);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using YiCraft.Models;

namespace YiCraft.Controllers
{
    public class reply_infosController : Controller
    {
        private YiCraftCoreEntities2 db = new YiCraftCoreEntities2();
        // GET: reply_infos
        public ActionResult Index()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Index([Bind(Include = "reply")] reply_infos reply_Infos)
        {
            if (ModelState.IsValid && reply_Infos.reply != null)
            {
                reply_Infos.theme_id = Convert.ToInt32(Session["did"]);
                reply_Infos.ReplyAuthor = Session["uid"].ToString();
                reply_Infos.ReplyTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                db.reply_infos.Add(reply_Infos);
                db.SaveChanges();
                if (Session["uid"].ToString() == "FYZY" && reply_Infos.reply.Contains("已解决"))
                {
                    var pm = from u in db.discuss_infos
                             where u.id ==reply_Infos.theme_id
                             select u;
                    discuss_infos di = new discuss_infos();
                    foreach (var k in pm)
                    {
                        di = (discuss_infos)k;
                    }
                    di.solve = "已解决";
                    db.Entry(di).State= EntityState.Modified;
                    db.Entry(di).Property(u => u.id).IsModified = true;
                    db.SaveChanges();
                }
                return RedirectToAction("Index", "discuss_infos", "创建成功");
            }
                return RedirectToAction("Index", "discuss_infos", "创建失败");
        }

      
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using YiCraft.Models;

namespace YiCraft.Controllers
{
    public class LoginController : Controller
    {
        // GET: Login
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Login_end(string name, string pwd)
        {
            YiCraftCoreEntities2 yc = new YiCraftCoreEntities2();
            player_infos p = yc.player_infos.SingleOrDefault<player_infos>(n => n.uid == name);
            if (p == null)
            {
                //return RedirectToAction("Index", "Login", "用户不存在!");
                return Content("<script>alert('用户不存在!');window.location.href='../Login/index';</script>");
            }
            else if (p.pwd == pwd)
            {
                Session["uid"] = name;
                return RedirectToAction("Index", "discuss_infos","登入成功!");
            }
            else
            {
                return Content("<script>alert('密码错误!');window.location.href='../Login/index';</script>");
            }
        }

    }
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using YiCraft.Models;

namespace YiCraft.Controllers
{
    public class discuss_infosController : Controller
    {
        private YiCraftCoreEntities2 db = new YiCraftCoreEntities2();

        // GET: discuss_infos
        public ActionResult Index()
        {
            return View(db.discuss_infos.ToList());
        }

        // GET: discuss_infos/Details/5
        public ActionResult Details(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            discuss_infos discuss_infos = db.discuss_infos.Find(id);
            if (discuss_infos == null)
            {
                return HttpNotFound();
            }
            return View(discuss_infos);
        }

        // GET: discuss_infos/Create
        public ActionResult Create()
        {
            return View();
        }

        // POST: discuss_infos/Create
        // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 
        // 详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=317598。
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create([Bind(Include = "id,theme,AllContent,time,author")] discuss_infos discuss_infos)
        {

            if (ModelState.IsValid&&discuss_infos!=null&&discuss_infos.theme!=null)
            {
                discuss_infos.author = Session["uid"].ToString();
                discuss_infos.time= DateTime.Now.ToString("yyyy-MM-dd HH:mm");
                discuss_infos.solve = "未解决";
                db.discuss_infos.Add(discuss_infos);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(discuss_infos);
        }

        // GET: discuss_infos/Edit/5
        public ActionResult Edit(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            discuss_infos discuss_infos = db.discuss_infos.Find(id);
            if (discuss_infos == null)
            {
                return HttpNotFound();
            }
            return View(discuss_infos);
        }

        // POST: discuss_infos/Edit/5
        // 为了防止“过多发布”攻击,请启用要绑定到的特定属性,有关 
        // 详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=317598。
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit([Bind(Include = "id,theme,AllContent,time,author")] discuss_infos discuss_infos)
        {
            if (ModelState.IsValid)
            {
                db.Entry(discuss_infos).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(discuss_infos);
        }

        // GET: discuss_infos/Delete/5
        public ActionResult Delete(int? id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            discuss_infos discuss_infos = db.discuss_infos.Find(id);
            if (discuss_infos == null)
            {
                return HttpNotFound();
            }
            return View(discuss_infos);
        }

        // POST: discuss_infos/Delete/5
        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            discuss_infos discuss_infos = db.discuss_infos.Find(id);
            db.discuss_infos.Remove(discuss_infos);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
    }
}

上传至:
github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值