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时代沿留 ...
随机推荐
- Can't connect to MySQL server on localhost (0)
配置双主的时候,由于一台始终连不上另一台. 于是我使用root账号远程登录查看,填入账户密码点击连接,结果就提示这样的错误. 一开始以为是权限的问题,于是就授与所有权,结果还是报一样的错. 重新创建一 ...
- WAMP虚拟目录的设置
1.打开Apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#!! 2.打开Apache的apache/conf/extr ...
- [Linux] 关于Centos6中ulimit nproc用户进程数的限制
一.缘由: 在启动mongodb的时候,有Warning提示soft rlimits too low,就是用户使用进程数过小,遂调高系统资源关于用户最大进程数的限制ulimit -u. 先暂时使设置生 ...
- Bugtags 2016-10-17 更新内容
远程配置功能上线 功能介绍 远程配置可以实现在不发布应用更新的情况下更改应用的行为和外观.举个例子,产品在某个功能正式发布前,可能会采取小流量测试的方式,控制该功能只有某些特定用户可见,那么就可以使用 ...
- poj 1806 Manhattan 2025
点击打开链接 题目大意就是给定一个最大歩数,让你输出你在三维的空间中可以到达的位置的切片,注意当歩数大于9的时候就不需要输出了! #include<stdio.h> #include< ...
- [CF442A] Borya and Hanabi (暴力bitmask)
题目链接:http://codeforces.com/problemset/problem/442/A 题目大意:给你n张卡片,你知道这n张卡片都是什么,但是不知道他们的位置.你每次可以请求朋友指出一 ...
- 使用Lamda生成函数
#include <functional> int main() { std::function<]; ; i < ;i++ ) fn[i] = [=]() {return i ...
- java中static 和 final 的一些使用规则
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...
- Google App Engine, Python2.7的UnicodeDecodeError bug
在跟Web Development,要在Google App Engine上写作业,出师不利,遇到以下bug: 2014-05-06 16:14:17 Running command: "[ ...
- Ibatis.net总是报:【ExecuteStoreCommand SqlParameterCollection 中已包含 SqlParameter】(转)
今天很奇怪调用EF的ExecuteStoreCommand 出现了个这样的错误,怎么也调试不过,痛定思痛 原来 command被连着调用了而没有销毁掉 public static DataTabl ...