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、方法的名称与视图的名称一致。
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>
上一篇: 虾婆婆是什么?什么季节吃虾婆婆最好呢?
下一篇: 虾小米吃了有什么好?吃它还要注意什么吗?