zoukankan      html  css  js  c++  java
  • MVC简介

    一、目录的认识

    https://www.runoob.com/aspnet/mvc-folders.html

    二、约定大于配置

    1、方法的名称与视图的名称一致。

    2、视图要放在Views文件下的当前方法所在控制器名称一致的文件夹内。

    三、添加数据

    1、如果方法的参数与表单元素name属性的值一致的话,会自动填充。

    2、如果表单元素name的属性的值与实体类中属性的名称一致,那么表单中的数据会自动赋值给实体中的属性。

    [HttpPost]
            public ActionResult Register(UserInfo userInfo)
            {
                userInfo.RegTime = DateTime.Now;
                CRUDDbContext dbContext = new CRUDDbContext();
                dbContext.UserInfo.Add(userInfo);
                if (dbContext.SaveChanges() > 0)
                {
                    return Content("ok");
                }
                else
                {
                    return Content("no");
                }
            }

    3、同一个方法处理post和get请求,可以使用隐藏域的方式来区分。也可以使用重载方法,然后使用特效标签[HttpPost]进行区分。

            <form method="post" action="">
                姓名:<input type="text" name="Name"/><br />
                密码:<input type="password" name="Pwd"/><br />
                邮箱:<input type="text" name="Email"/><br />
                <input type="submit"value="注册" />
            </form>
           public ActionResult Register()
            {
                return View();
            }
            [HttpPost]
            public ActionResult Register(string Name, string Pwd, string Email)
            {
                UserInfo userInfo = new UserInfo();
                userInfo.Name = Name;
                userInfo.Pwd = Pwd;
                userInfo.Email = Email;
                userInfo.RegTime = DateTime.Now;
                CRUDDbContext dbContext = new CRUDDbContext();
                dbContext.UserInfo.Add(userInfo);
                if (dbContext.SaveChanges() > 0)
                {
                    return Content("ok");
                }
                else
                {
                    return Content("no");
                }
            }
        }
        public class UserInfo
        {
            [Key]
            public int ID { get; set; }
            [StringLength(32)]
            [Required]
            public string Name { get; set; }
            [StringLength(32)]
            [Required]
            public string Pwd { get; set; }
            [Required]
            public DateTime RegTime { get; set; }
            [StringLength(32)]
            [Required]
            public string Email { get; set; }
        }

     四、列表展示数据

    1、ViewData可以将Controller数据传递到View中

     public ActionResult Index()
            {
                CRUDDbContext dbContext = new CRUDDbContext();
                var users = dbContext.UserInfo;
                ViewData["UserInfo"] = users;
                return View();
            }
    <tr><th>编号</th><th>用户名</th><th>密码</th><th>注册时间</th><th>邮箱</th></tr>
    
                    @{ foreach (var item in (IQueryable<WebApplication1.Models.UserInfo>)ViewData["UserInfo"])
                        {
                            <tr><td>@item.ID</td><td>@item.Name</td><td>@item.Pwd</td><td>@item.RegTime</td><td>@item.Email</td></tr>
                        }
                    }

    五、修改数据

    1、通过URL传递过来的参数会自动赋值给该方法的参数,但是该方法的参数名称一定要与路由规则中定义的参数名称一致,否则出错。

    @{ foreach (var item in (IQueryable<WebApplication1.Models.UserInfo>)ViewData["UserInfo"])
                        {
                            <tr><td>@item.ID</td><td>@item.Name</td><td>@item.Pwd</td><td>@item.RegTime</td><td>@item.Email</td><td><a href="/UserInfo/ShowDetail?id=@item.ID">详细</a></td></tr>
                        }
                    }
    public ActionResult ShowDetail(int id)
            {
                return Content(id.ToString());
            }

     2、Model传值

    public ActionResult ShowDetail(int id)
            {
                CRUDDbContext dbContext = new CRUDDbContext();
                var users = dbContext.UserInfo.Where(u => u.ID == id).FirstOrDefault();
                return View(users);
            }
    <form method="post" action="/UserInfo/ShowDetail?id=@Model.ID">
                姓名:<input type="text" name="Name" value="@Model.Name"/><br />
                密码:<input type="text" name="Pwd" value="@Model.Pwd"/><br />
                邮箱:<input type="text" name="Email" value="@Model.Email" /><br />
                <input type="submit" value="修改" />
            </form>
  • 相关阅读:
    继承
    iOS 适配暗黑模式
    【C++ STL】容器的选择
    纳税相关
    SwiftUI状态绑定:@State
    python 中各种容器可以容纳的数据类型
    open GL 在使用材质属性glMaterial设置物体颜色效果时,使用shader和使用固定管线后颜色区别
    做为一名测试工程师,你经常会用到或听到的那些工具
    推荐一款技术人必备的接口测试神器:Apifox
    测试管理工具推荐
  • 原文地址:https://www.cnblogs.com/birdGe/p/12418713.html
Copyright © 2011-2022 走看看