zoukankan      html  css  js  c++  java
  • 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");
        }
    
    }
    编辑页面
  • 相关阅读:
    Roce ofed 环境搭建与测试
    Ubuntu 1804 搭建NFS服务器
    Redhat 8.0.0 安装与网络配置
    Centos 8.1 安装与网络配置
    SUSE 15.1 系统安装
    VSpare ESXi 7.0 基本使用(模板、iso、SRIOV)
    VSpare ESXi 7.0 服务器安装
    open SUSE leap 15.1 安装图解
    KVM虚拟机网卡连接网桥
    GitHub Action一键部署配置,值得拥有
  • 原文地址:https://www.cnblogs.com/xiaz/p/5273010.html
Copyright © 2011-2022 走看看