欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MVC简介

程序员文章站 2022-08-08 08:40:25
一、目录的认识 https://www.runoob.com/aspnet/mvc-folders.html 二、约定大于配置 1、方法的名称与视图的名称一致。 2、视图要放在Views文件下的当前方法所在控制器名称一致的文件夹内。 三、添加数据 1、如果方法的参数与表单元素name属性的值一致的话 ......

一、目录的认识

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

 

二、约定大于配置

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

MVC简介

 

 

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

MVC简介

 

 

三、添加数据

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>