MVC开发基础
新建--项目--ASP.NET MVC 4 WEB 应用程序
MVC:
M--Model 模型层 放置数据访问类,linq
V--View 视图层 界面层 aspx文件。只有一个页面文件,没有C#代码文件 ,那怎么执行?
<%@ %>引用命名空间
<% %>在此区域里嵌所有C#代码
<%@ %>输出一个变量的值
C--Control 控制层 添加-控制器--
C层:由控制器及控制器中的动作所组成,MVC请求不是直接对页面,而是对控制器中的某个动作发送请求
默认返回 Home控制器下的Index动作
如果有请求的控制器,没有请求动作。那么会默认返回
数据展示:
namespace mvc1.Controllers
{
public class HomeController : Controller
{ //动作
public string Index()
{
return "hole word";
}
public string Other1()
{
return "<html><head></head><body><h1>"+DateTime.Now+"<h1></body></html>";
}
}
}
qidian1Controller.cs:
namespace mvc1.Controllers
{
public class qidianController : Controller
{ public string Index()
{
StringBuilder ss = new StringBuilder();
using (DataClasses1DataContext con = new DataClasses1DataContext())
{
List<Users> ulist = con.Users.ToList();
foreach(Users u in ulist)
{
ss.Append(u.NickName+"|");//追加
}
}
return ss.ToString();
}
public ActionResult other1()//添加视图--右键第一个(会出现一个html:other1.aspx)
{
return View();
}
other1.aspx:
<%@ Import Namespace="mvc1.Models" %> <%--引用命名空间--%> <!DOCTYPE html> <html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
<title>other1</title>
</head>
<body>
<div>
<h1>这是视图产生出的页面</h1>
<table>
<tr>
<td>用户名</td>
<td>密码</td>
<td>昵称</td>
<td>性别</td>
<td>生日</td>
<td>民族</td>
</tr>
<% List<Users> ulist = new UsersData().Select();//在model里添加一个类,来这调用
foreach(Users u in ulist)
{
%> <tr>
<td><%=u.UserName %></td>
<td><%=u.Password %></td>
<td><%=u.NickName %></td>
<td><%=Convert.ToBoolean(u.Sex)?"男":"女" %></td>
<td><%=u.Birthday.Value.ToString("yyyy年MM月dd日") %></td>
<td><%=u.Nation1.NationName %></td>
</tr>
<% } %>
</table>
</div>
UsersData类: namespace mvc1.Models
{
public class UsersData
{ DataClasses1DataContext con = null;
public UsersData()
{
con = new DataClasses1DataContext();
}
public List<Users> Select()
{
return con.Users.ToList();
}
}
添加:
添加控制器,添加一个动作(视图Insert()),--添加视图(写添加界面)--保存按钮:加一个动作Insert1(),接收内容:1、组对象2、往数据库添加数据3、返回展示页面 RedirectToAction()
<body>
<form action="insert1" method="post">
<h1>添加页面</h1><%--name--%>
用户名:<input type="text" name="username"/><br /><br /> 密码:<input type="text"/ name="password"><br /><br />
昵称:<input type="text" name="nickname" /><br /><br />
性别:<input type="text" name="sex"/><br /><br />
生日:<input type="text" name="birthday"/><br /><br />
民族:<input type="text" name="nationcode"/><br /><br />
<input type="submit" value="保存"/>
</form>
</body>
public ActionResult Insert()//添加页面
{
return View();
} public ActionResult insert1(string username,string password,string nickname,bool sex,DateTime birthday,string nationcode)//添加保存按钮,传值
{
Users u = new Users();
u.UserName = username;
u.Password = password;
u.NickName = nickname;
u.Sex = sex;
u.Birthday = birthday;
u.NationCode = nationcode;
new UsersData().Insert(u);//models里写方法直接来调用
return RedirectToAction("Index","Home");//添加完了,再跳回显示页面
}
删除:
<td>
<a href="Home/Update/<%=u.UserName %>">修改</a>
<a href="Home/Delete/<%=u.UserName %>">删除</a><%--用这个方式传值--%>
</td>
public ActionResult Delete(string id)//获取值
{
new UsersData().Delete(id);//uname是靠id这个路由传过来的
return RedirectToAction("Index");
}
修改:
<form action="/Home/Update1" method="post"> <%
Users u = ViewBag.hehe as Users; if (u != null)
{
%> <h1>修改页面</h1>
用户名:<input type="text" name="username" value="<%=u.UserName %>" /><br />
<br />
密码:<input type="text" name="password" value="<%=u.Password %>" /><br />
<br />
昵称:<input type="text" name="nickname" value="<%=u.NickName %>" /><br />
<br />
性别:<input type="text" name="sex" value="<%=u.Sex %>" /><br />
<br />
生日:<input type="text" name="birthday" value="<%=u.Birthday %>" /><br />
<br />
民族:<input type="text" name="nationcode" value="<%=u.NationCode %>" /><br />
<br />
<input type="submit" value="保存" />
<%
}
else
{
%>
<h1>未查到学生信息!</h1>
<%
}
%>
</form>
public ActionResult Update(string aa)
{
Users uu = new UsersData().Select(aa);
ViewBag.hehe = uu;//获取数据传递。数据包
return View();
}
public ActionResult Update1(Users u)//返回一个对象
{
new UsersData().Update(u);
return RedirectToAction("Index");//跳回主页面
}
MVC开发基础的更多相关文章
- 自学MVC开发基础
由于现在面试需求,我必须有点了解MVC开发基础,MVC是一个开发框架或者是一个开发模式,MVC让软件开发的过程大致切割成三个单元,分别是:Model(模型).View(试图).Controller(控 ...
- ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器
一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...
- ASP.Net MVC开发基础学习笔记(4):校验、AJAX与过滤器
一.校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解) 位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据 ...
- ASP.Net MVC开发基础学习笔记:一、走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- ASP.Net MVC开发基础学习笔记(1):走向MVC模式
一.ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传统的WebForm模式下,我们请求一个例如http://www.aspnetmvc.com/bl ...
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
一.一个功能强大的页面开发辅助类—HtmlHelper初步了解 1.1 有失必有得 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归. ...
- ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习
一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留 ...
- ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步
一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新 ...
- ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步
一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新 ...
- ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习
一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留 ...
随机推荐
- Turn off Debug Logging in Quartz .Net
Quartz.net uses Common.Logging, so something like this in your App.config/Web.config: <configSect ...
- hdu3294 girl‘s research
题目大意:有多组数据,每组数据给出一个字符和一个字符串.该字符将变成’a‘,表示字符串中的所有该字符将变成’a‘,同时其他字符也将做相同的偏移.具体来说,如果该字符为’b‘,表示字符串中的’b‘都将变 ...
- [I2C]I2C架构分析
转自:http://blog.csdn.net/wangpengqi/article/details/17711165 1. I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一 ...
- Java的动态绑定机制
Java的动态绑定又称为运行时绑定.意思就是说,程序会在运行的时候自动选择调用哪儿个方法. 一.动态绑定的过程: 例子: public class Son extends Father Son son ...
- 非阻塞socket调用connect, epoll和select检查连接情况示例
转自http://www.cnblogs.com/yuxingfirst/archive/2013/03/08/2950281.html 我们知道,linux下socket编程有常见的几个系统调用: ...
- MFC与C#连接MYSQL乱码问题
MYSQL数据库编码为:latin1 问题现象:插入中文乱码,及用中文作参数无法得到相应数据 如select * from userinfo where username='李小明' MFC中解决方法 ...
- email
#region 邮件帮助类 //+-------------------------------------------------------------------+ //+ FileName: ...
- 注释驱动的 Spring cache 缓存介绍
概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...
- vbox下创建共享存储
1.创建共享盘VBoxManage.exe createhd -filename D:\VM\linux01\ocr_vote.vdi -size 2048 -format VDI -variant ...
- ArcGIS Engine中的8种数据访问 (转)
数据是GIS的基础, 访问数据也是进行任何复杂的空间分析及空间可视化表达的前提.ArcGIS支持的数据格式比较丰富,对不同的数据格式支持的程度也有很大差异.本文主要介绍一下以下八种数据格式在ArcGI ...