MVC新闻提交小练习+Session登录提交练习

控制器端代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication9.Models;

namespace MvcApplication9.Controllers
{
    public class NewsController : Controller
    {
        //
        // GET: /News/

        public ActionResult Add()
        {
            if (Session["user"] == null)
            {
                return RedirectToAction("Index", "Login");
            }
            return View();
        }
        public ActionResult Insert(string title,string author,string sourse,string content)
        {
            if (Session["user"] == null)
            {
                return RedirectToAction("Index", "Login");
            }
            DateTime dt = DateTime.Now;
            new NewsDA().Insert(title,author,sourse,content);
            return RedirectToAction("Add");
        }
        public ActionResult Index()
        {
            if (Session["user"] == null)
            {
                return RedirectToAction("Index", "Login");
            }
            List<News> list = new NewsDA().Select();
            return View(list);
        }
        public ActionResult Edit(int newsid)
        {
            if (Session["user"] == null)
            {
                return RedirectToAction("Index", "Login");
            }
            News data = new NewsDA().Select(newsid);
            return View(data);
        }
        public ActionResult Update(int newsid,string title, string author, string sourse, string content)
        {
            if (Session["user"] == null)
            {
                return RedirectToAction("Index", "Login");
            }
            new NewsDA().Update(newsid,title, author, sourse, content);
            return RedirectToAction("Index");
        }
        public ActionResult Delete(int newsid)
        {
            if (Session["user"] == null)
            {
                return RedirectToAction("Index", "Login");
            }
            new NewsDA().Delete(newsid);
            return RedirectToAction("Index");
        }
    }
}

新闻添加页面代码:

@{
    Layout = null;
}
@using MvcApplication9.Models;
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Add</title>
    <style type="text/css">
        .test {
            width:400px;
        }
        .test1 {
            width:400px;
            height:350px;
        }
        </style>
</head>
<body>
    <div>
        @using(Html.BeginForm("Insert","News", FormMethod.Post)){
        <h1>新闻发布</h1>
        <div>

            <div>
            标题:@Html.TextBox("title", "",new { @class="test"})<br/>
            作者:@Html.TextBox("author", "", new { @class="test"})<br/>
            来源:@Html.TextBox("sourse", "", new { @class="test"})<br/>
            内容:@Html.TextArea("content", "", new { @class="test"})<br/>
            <input id="Submit1" type="submit" value="提交" />  <a href="/News/Index"><input id="Button1" type="button" value="查看" /></a> @Html.ActionLink("查看", "Index", "News", new { }, new { })

            </div>
    </div>
        }
</body>
</html>

新闻修改视图:

@{
    Layout = null;
}
@model News
@using MvcApplication9.Models;
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Add</title>
    <style type="text/css">
        .test {
            width:400px;
        }
        .test1 {
            width:400px;
            height:350px;
        }
        </style>
</head>
<body>
    <div>
        @using(Html.BeginForm("Update","News", FormMethod.Post)){
        <h1>新闻发布</h1>
        <div>

            <div>
            @Html.HiddenFor(p=>p.newsid)
            标题:@Html.TextBoxFor(p=>p.title) <br/>
            作者:@Html.TextBoxFor(p=>p.author) <br/>
            来源:@Html.TextBoxFor(p=>p.sourse) <br/>
            内容:@Html.TextAreaFor(p=>p.content) <br/>
            @Html.HiddenFor(p=>p.time)
            <input id="Submit1" type="submit" value="提交" /> 

            </div>
    </div>
        }
</body>
</html>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Edit</title>
</head>
<body>
    <div>

    </div>
</body>
</html>

新闻主界面视图:

@{
    Layout = null;
}
@using MvcApplication9.Models;
@model List<News>
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <style type="text/css">

        .tbhead {
            background-color:navy;
            text-align:center;
            color:white;
            font-weight:bold;
        }
        .tbrow {
            text-align:center;
            background-color:#FFFFcc;
        }
    </style>
</head>
<body>
    <div>
        <table id="tbinfo" width="100%" cellpadding="4" cellspacing="1" bgcolor="black" border="0">
            <tr class="tbhead">
                <td>新闻代号</td>
                <td>新闻标题</td>
                <td>作者</td>
                <td>来源</td>
                <td>内容</td>
                <td>时间</td>
            </tr>

          @{
              foreach( News data in Model)
              {
            <tr class="tbrow">
                <td>@data.newsid</td>
                <td>@data.title</td>
                <td>@data.author</td>
                <td>@data.sourse</td>
                <td>@data.content</td>
                <td>@data.time</td>
                <td>
                    @Html.ActionLink("修改", "Edit", "News", new {newsid=data.newsid}, new { })
                    @Html.ActionLink("删除", "Delete", "News", new {newsid = data.newsid }, new { onclick="return confirm(‘确认要删除吗?‘)"})
                </td>
            </tr>
            }
          }
        </table>
        @Html.ActionLink("添加人员", "Add", "News")
    </div>
</body>
</html>

新闻Model层方法代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcApplication9.Models
{
    public class NewsDA
    {
        private newsDataContext _Context = new newsDataContext();
        public List<News> Select()
        {
            return _Context.News.ToList();
        }
        public News Select(int id)
        {
            var query = _Context.News.Where(p => p.newsid == id);
            if (query.Count() > 0)
            {
                return query.First();
            }
            return null;
        }
        public void Insert( string til, string aut, string sou, string con)
        {
            News data = new News
            {
                title = til,
                author = aut,
                sourse = sou,
                content = con,
                time = DateTime.Now,
            };
            _Context.News.InsertOnSubmit(data);
            _Context.SubmitChanges();
        }
        public void Delete(int id)
        {
            var query = _Context.News.Where(p => p.newsid == id);
            if (query.Count() > 0)
            {
                News data = query.First();
                _Context.News.DeleteOnSubmit(data);
                _Context.SubmitChanges();
            }
        }
        public void Update(int id,string til, string aut, string sou, string con)
        {
            var query = _Context.News.Where(p => p.newsid == id);
            if (query.Count() > 0)
            {
                News data = query.First();
                data.title = til;
                data.author = aut;
                data.sourse = sou;
                data.content = con;
                //data.time = DateTime.Now;//随时修改修改时间
                _Context.SubmitChanges();
            }
        }
    }
}

登录界面控制器代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication9.Models;

namespace MvcApplication9.Controllers
{
    public class LoginController : Controller
    {
        //
        // GET: /Login/

        public ActionResult Index()
        {
            return View();
        }
        public ActionResult CheckUidPwd(string uid, string pwd)
        {
            bool isOK = new LoginDA().Login(uid, pwd);
            if (isOK)
            {
                //保存状态
                Session["user"] = uid;
                //跳转界面
                return RedirectToAction("Index", "News");
            }
            else
            {
                return RedirectToAction("Index");
            }
        }
    }
}

登录视图代码:

@using MvcApplication9.Models;
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <h1>登录</h1>
        @using(Html.BeginForm("CheckUidPwd","Login")){
        <div>
            用户名:@Html.TextBox("uid")<br/>
            密码:@Html.Password("pwd")<br/>
            <input type="submit" value="登录" />
        </div>
        }
    </div>
</body>
</html>

登录Model层方法代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MvcApplication9.Models
{
    public class LoginDA
    {
        private newsDataContext _Context = new newsDataContext();
        public bool Login(string userName, string password)
        {
            var query = _Context.Login.Where(p => p.Username == userName && p.Password == password);
            return query.Count() > 0;
        }
    }
}
时间: 2024-08-05 07:03:49

MVC新闻提交小练习+Session登录提交练习的相关文章

Spring MVC防止数据重复提交(防止二次提交)

SpringMvc使用Token 使用token的逻辑是,给所有的url加一个拦截器,在拦截器里面用java的UUID生成一个随机的UUID并把这个UUID放到session里面,然后在浏览器做数据提交的时候将此UUID提交到服务器.服务器在接收到此UUID后,检查一下该UUID是否已经被提交,如果已经被提交,则不让逻辑继续执行下去- 首先要定义一个annotation: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME

10-客户端防表单重复提交和服务器端session防表单重复提交

/****************************************************DoFormServlet********************************************************/ package session; import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import

asp.net MVC中控制器获取表单form提交的数据之实体类数据

第一次写记录文章,难免有不足之处:欢迎指出. 1.新建一个mvc项目如: 2.新建一个Test.cs 注意get,set方法不能简写 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 using System; using System.Collections.Generic; using System.Linq; usi

PHP jQuery ajax 表单提交小示例(含insert, select)

功能描述:能够通过表单向MySQL数据库新增记录,能够表单提供关键词进行查询 index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

spring mvc Controller与jquery Form表单提交代码demo

1.JSP表单 <% String basePath = request.getScheme() + "://" + request.getServerName() +":"+ request.getServerPort() + request.getContextPath() + "/"; %> <script language="javascript" type="text/javascript

mvc 防止客服端多次提交

但凡web开发中都会有户多次点击了提交按钮导致多次提交的情况,一般的集中做法 1.通过js在用户点击的时候将按钮disabled掉,但是这样并不是很可靠(我就可以跳过这个,用一个for循环 我直接自己post数据过去) 2.在生成客服端html的时候存放一个隐藏的input,input里面存放一个随机生成的值(一般为guid),服务器端会将此值保存,等用户提交的时候 判断提交过来的guid是否匹配(这种方法相对第一种安全性更高,但是如果是全静态的页面的话就不满足了,于是自己琢磨了第3中解决方案)

Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧

学习Mybatis时提到了JDBC方式需要自己手动提交事务,如果不加session.commit会导致数据库的数据无法正常插入(程序本身又不给你报错,还装出一副我已经插入成功的样子) SqlSession session = sessionFactory.openSession(); 如果要自动提交的话加个参数就好啦 SqlSession session = sessionFactory.openSession(true);//自动提交 手动提交的话 SqlSession session = s

小程序 之登录 wx.login()

小程序的登录关键在于使用wx.login()方法后,要到取到code值传到后台, 再用小程序平台本帐号生成的appid+addsecret+code去微信接口服务取得用户唯一标识后即可登录[注意:此步骤必须要在本项目后台服务中才能成功,在小程序端是无效的] appid+addsecret 下图是官方的登录流程图: 放上代码 showTopTips:function(e){ //登录/注册提交事件 if (userName==''){ app.toastShow(this, "请输入手机号&quo

spring MVC的一些小技巧

1,在controller中获取指定name的bean /*** * * @param request * @param beanName : 例如 userDao ,adminDao * @return */ public Object getBean(HttpServletRequest request,String beanName){ WebApplicationContext webApp=RequestContextUtils.getWebApplicationContext(req