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时代沿留 ...
随机推荐
- ES6特性
一.ES6特性: let, const, class, extends, super, arrow functions, template string, destructuring, default ...
- Spring事务管理(转)
Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作.今天一起学习一下Spring的事务管理.Spring的事务管理分为声明式跟编程式.声明式就是在Spring的配置文件中进行相关配置 ...
- 3.2 一般的哈尔空间Vj
例3.2给予我们继续往下面做的动力.很明显的我们对于g(t)的逼近还是太粗糙了.很自然的,我们会想到,如果继续细分我们的短点,比如每1/2取一个值,甚至每1/4取一个值,那么就会有更好的逼近效果. 不 ...
- javascript bind
bind的作用和apply,call类似都是改变函数的execute context,也就是runtime时this关键字的指向.但是使用方法略有不同.一个函数进行bind后可稍后执行. 定义: fu ...
- policy
template <class Apolicy> class Host { Apolicy direct_policy_use; Apolicy <SomeInternalT ...
- JSTL 核心标签库 使用
JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...
- LeetCode 397. Integer Replacement
397. Integer Replacement QuestionEditorial Solution My Submissions Total Accepted: 5878 Total Subm ...
- python学习笔记(三)
1.闭包:闭包是一个包含有环境变量取值的函数对象.环境变量取值被保存在函数对象的__closure__属性中.将函数作为某另一个函数的返回结果. 2.可以继续调用decorator来修饰函数或者类,而 ...
- java.lang.classnotfoundexception org.json.jsonexception
java.lang.classnotfoundexception org.json.jsonexception 解决方法 http://www.java2s.com/Code/Jar/j/Downlo ...
- Translucent Bar Android状态栏自定义颜色
Android4.4 一个很重要的改变就是透明系统栏..新的系统栏是渐变透明的, 可以最大限度的允许屏幕显示更多内容, 也可以让系统栏和 Action Bar 融为一体, 仅仅留下最低限度的背景保护以 ...