• MVC简单实例


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    using System.Web;
    using System.Web.Mvc;
    using WebApplication1.Models;
    
    namespace WebApplication1.Controllers
    {
        public class LeaveMsgController:Controller
        {
            //GET:/LeaveMsg/
            public ActionResult Index()
            {
                //Controllers向视图传值
                //原理:先存数据然后再在视图你面取出来
                string s = "hello!!";
                ViewData["aa"] = s;
                
                BBSDataContext bbs = new BBSDataContext();
                List<student> v = (from m in bbs.student
                        select m).ToList();
                ViewData["list"] = v;
    
                return View();
            }
            //删除
            public ActionResult Delete()
            {
                //RouterData 可以获取路由上的数据
                string id = RouteData.Values["id"].ToString();
                //可以将一段文字返回给浏览器
                //return view() 是把当前这个Action对应的视图返回给浏览器
                BBSDataContext dc = new BBSDataContext();
                var v = from d in dc.student
                        where d.stuID == int.Parse(id)
                        select d;
                if (v.Count()>0)
                {
                    //删除
                    try
                    {
                        dc.student.DeleteOnSubmit(v.First());
                        dc.SubmitChanges();
                        //成功
                        //TempData临时数据,为下一次请求服务,在下一次请求完毕,数据清除
                        //本质是session存放数据
                        TempData["msg"] = "删除成功";
                    }
                    catch (Exception)
                    {
                        //失败
                        TempData["msg"] = "删除失败!!!";
                    }
                   
                }
                else
                {
                    //没有对应的数据
                    TempData["msg"] = "没有找到对应的数据!!!";
                }
                return RedirectToAction("Index");
            }
    
            //新增
            public ActionResult Insert()
            {
                return View();
    
            }
    
            //数据验证
            public void CheckData(student s)
            {
                //用户名不能为空
                if (s.stuName=="")
                {
                    ModelState.AddModelError("stuName", "用户名不能为空");
                }
                //性别内容长度不能为空且不能大于2个字符
                if (s.stuNo==""&&s.stuNo.Length<2)
                {
                    ModelState.AddModelError("stuName", "用户名不能为空或字符数大于2");
                }
                //正则表达式
                //bool b= Regex.IsMatch(s.stuID.ToString(), "^\{6}$");//C#正则
               
            }
            //提交新增操作
            public ActionResult InsertOK()
            {
                //数据验证
               
                BBSDataContext dc = new BBSDataContext();
                student s = new student();
                s.stuName = Request["stuName"];
                s.stuID = int.Parse(Request["stuNo"]);
                s.sex = Request["sex"];
                s.remark = Request["remark"];
                CheckData(s);
                if (!ModelState.IsValid)//验证不通过
                {
                    ViewData["stuName"] = s.stuName;
                    ViewData["stuNo"] = s.stuNo;
                    ViewData["sex"] = s.sex;
                    return View("Insert");
                }
                try
                {
                    dc.student.InsertOnSubmit(s);
                    dc.SubmitChanges();
                    TempData["msg"] = "新增成功!!!";
                    return RedirectToAction("Index");
                }
                catch (Exception)
                {
                    TempData["msg"] = "新增失败";
                    return RedirectToAction("Insert");
                }
            }
    
            //编辑跳转
            public ActionResult Edit()
            {
    
                string id = RouteData.Values["id"].ToString();
                ViewData["id"] = id;
                //找id对应的数据
                BBSDataContext dc = new BBSDataContext();
                var v = from d in dc.student
                        where d.stuID == int.Parse(id)
                        select d;
                if (v.Count()>0)
                {
                    var d = v.First();
                    ViewData["stuName"] = d.stuName;
                    ViewData["stuNo"] = d.stuNo;
                    ViewData["sex"] = d.sex;
                    ViewData["remark"] = d.remark;
                    return View();
                }
                else
                {
                    TempData["msg"] = "没有对应的数据";
                    return View();
                }
            }
    
            //修改
            public ActionResult Update()
            {
                string id = Request["id"];
                BBSDataContext dc = new BBSDataContext();
                var v = from d in dc.student
                        where d.stuID == int.Parse(id)
                        select d;
                if (v.Count()>0)
                {
                    var m = v.First();
                    m.stuName = Request["stuName"];
                    m.stuNo = Request["stuNo"];
                    m.sex = Request["sex"];
                    CheckData(m);
                    if (!ModelState.IsValid)
                    {
                        return View("Edit");
                    }
                    try
                    {
                        dc.SubmitChanges();//提交修改
                        TempData["msg"] = "修改成功";
                        return RedirectToAction("Index");
                    }
                    catch (Exception)
                    {
    
                        TempData["msg"] = "修改失败!";
                        return RedirectToAction("Edit",new { id=id});
                    }
                    
                }
                else
                {
                    //没有此数据
                    TempData["msg"] = "提交数据之前数据被其他用户已删除!!";
                    return RedirectToAction("Index");
                }
            }
    
        }
    }
    控制器中业务逻辑
    @{
        ViewBag.Title = "Index";
    }
    @using WebApplication1.Models
    
    <h2>学生列表</h2>
    
        @ViewData["aa"]
        @TempData["msg"]
        <table width="100%">
        <tr><th>姓名</th><th>学号</th><th>性别</th><th>操作</th></tr>
        @{
            List<student> list = ViewData["list"] as List<student>;
    
        }
        @{
            foreach (var item in list)
            {
            <tr>
                <td>@item.stuName</td>
                <td>@item.stuID</td>
                <td>@item.sex</td>
                <td>@* 在MVC里提供了2个helper类,htmlHelper,UrlHelper类可以生成html代码和url代码,使用比较方便
                        <a href='student/delete'/@item.stuID>删除</a>
                    @Url.Action("delete", "student", new {id=item.stuID})*@
                    @Html.ActionLink("编辑", "Edit", new {id=item.stuID})|
                    @Html.ActionLink("删除", "Delete", new { id = item.stuID })
                </td>
                    
            </tr>
            
                
            }
        }
        </table>
        @Html.ActionLink("新增","Insert")
    Index页面
    @{
        ViewBag.Title = "Insert";
    }
    
    <h2>新增页面</h2>
    @TempData["msg"]
    <p>
        @Html.ValidationSummary();
    </p>
    @{
        using (Html.BeginForm("InsertOK","LeaveMsg", FormMethod.Post))
        {//创建的对象会在using语句块结束时关闭对象
    
            <span>用户名</span> @Html.TextBox("stuName")<br />
            <span>学号</span> @Html.TextBox("stuNo")<br />
            <span>性别</span> @Html.TextBox("sex")<br />
             <span>评论</span> @Html.TextArea("remark",null,5,30,null)<br />
            <input type="submit" value="新增" />
            @Html.ActionLink("返回列表", "Index"); 
    
        }
        
    }
    新增页面
    @{
        ViewBag.Title = "Edit";
    }
    
    <h2>编辑信息</h2>
    @TempData["msg"]
    <p>
        @Html.ValidationSummary();
    </p>
    @{
        using (Html.BeginForm("Update", "LeaveMsg", FormMethod.Post))
        {
            @Html.Hidden("id")
            <span>用户名</span> @Html.TextBox("stuName")<br />
                <span>学号</span> @Html.TextBox("stuNo")<br />
                <span>性别</span> @Html.TextBox("sex")<br />
                <span>评论</span> @Html.TextArea("remark", null, 5, 30, null)<br />
                <input type="submit" value="修改" />
                @Html.ActionLink("返回列表", "Index");
        }
    
    }
    编辑页面
  • 相关阅读:
    20155334 2016-2017-2 《Java程序设计》第四周学习总结
    20155334 2016-2017-2 《Java程序设计》第三周学习总结
    20155334 2016-2017-2 《Java程序设计》第二周学习总结
    20155334 2016-2017-2 《Java程序设计》第一周学习总结
    虚拟机与Linux的初体验
    20155334的第二次随笔
    使用Maven工程
    观察者模式(observer)
    GreenPlum之进程会话管理篇
    Linux下crontab命令添加Kettle作业定时任务
  • 原文地址:https://www.cnblogs.com/xiaz/p/5273010.html
Copyright © 2020-2023  润新知