2014/12/01
1、初步认识MVC模型。
MVC模式是一种表现模式。它将web应用程序分成三个部分,模型(Model)、视图(View)、控制器(Controller)。
Model:是实现业务逻辑层对实体类响应数据库操作。
View:是用户接口层组件,仅仅只是用来展示数据的。
Controller:处理用户交互,从model中获取数据并将数据传给指定的视图展示。

例子:访问home控制器下面的action,由对应home控制器的视图展示数据。
控制器:HomeController: Controller

public ActionResult Index()
{
ViewData["Msg"] = "欢迎使用 ASP.NET MVC!";
return View(); //默认Home控制器视图Index界面展示数据。
}

视图:<%:ViewData["Msg"]%>

视图Shared文件夹,公用视图,可以存放母版页、用户控件、错误页面等。

控制器自动搜索视图约定:
1、查找控制器同名文件夹下的视图aspx。
2、查找控制器同名文件夹下的视图ascx。
3、查找Shared文件夹下的视图aspx。
4、查找Shared文件夹下的视图ascx。

return View("Index");  //指定Index视图展示数据。
return Content("输出内容。");  //打印
return RedirectToAction("Index"); //跳转执行action-Index()方法。

关于路由初步认识:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", //路由名称
"{controller}/{action}/{id}", //带有参数的 URL
new {controller="Home",action="Index",id=UrlParameter.Optional} //参数默认值
);

1、请求控制器action方法,即可以接收Get,也可以接收Post提交的数据。

*MVC强大的内置Htmlhelper类。

<%: Html.TextBox("txtName","这是文本框。") %>
//自动生成html标签为:
<input id="txtName" name="txtName" type="text" value="这是文本框。">
<%: Html.ActionLink("这是A标签。","Index","Home",new {Id="a1",style="color:red;",@class="classA"}) %>
//自动生成html标签为:
<a id="a1" class="classA" href="/Home/Index" style="color:red;">这是A标签。</a>
男:<%: Html.RadioButton("txtGender",1,true) %><br/>
女:<%: Html.RadioButton("txtGender",2,false) %><br/>
保密:<%: Html.RadioButton("txtGender",1,false) %><br/>
ViewData["city"] = new List<selectListItem>()
{
new SelectListItem(){Selected=false,Text="北京",Value="1"},
new SelectListItem(){Selected=false,Text="天津",Value="2"},
new SelectListItem(){Selected=false,Text="南京",Value="3"},
new SelectListItem(){Selected=false,Text="成都",Value="4"},
}; <%: Html.DropDownList("city") %>
//注释:后台将数据存储到ViewData中,前台通过key直接获取集合数据。

*强类型视图:
表单提交,ID和name值只要model类字段一样,提交的时候自动封装到实体类中。

//视图中使用表单标签2种方式
<% using(Html.BeginForm()) {%>

<%}%> //推荐

<% Html.BeginForm();%>
//……
<% Html.EndForm();%>

学习总结:
mvc与asp.net最大区别就是业务逻辑层(.cs)与视图层(.aspx)弱耦合关系。
视图层不再是一一对应逻辑层,用户访问页面也不再是直接访问指定的视图,
而是通过访问指定的控制器下面的action方法,通过控制器将最终数据交给视图展示。
备注:用户—>控制器—>模型(BLL,DAL)—>数据库(DB)—>模型—>控制器—>视图。

使用MVC不再使用任何服务器端控件,也没有viewstate。

[MVC学习日记]2014/12/01 初步认识MVC模型。的更多相关文章

  1. Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)

    与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...

  2. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  3. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  4. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

    一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...

  5. ASP.NET MVC 学习1、新增Controller,了解MVC运行机制

    1,turorial ,根据链接教程新建一个MVC项目 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/ ...

  6. 【ASP.NET MVC 学习笔记】- 12 Filter

    本文参考:http://www.cnblogs.com/willick/p/3331520.html 1.Filter(过滤器)是基于AOP(Aspect-Oriented Programming 面 ...

  7. MVC学习日记(三)EntityFramework

    其实学会了第一篇的创建和第二篇的使用以后,基本的mvc操作足够了,至于验证神马的,还不如用Jquery.h5的好看适用,所以接下来, 后续上会讲一些比较实用的. 在之前的文章说到了基础的使用, 那么, ...

  8. Cheatsheet: 2014 12.01 ~ 12.31

    .NET Some Thoughts on the new .Net Introducing .NET Core Running ASP.NET on a Raspberry Pi with Mono ...

  9. 2014.12.01 B/S 使用VS建立Web网站

    要求:从hr数据库info表读取数据,在Web网站中显示为如图: 用DW绘制一个表格,然后将代码拷贝到新建的网站主页代码中 <div> <table bgcolor=" w ...

随机推荐

  1. deque双端队列用法

    #include <iostream> #include <cstdio> #include <deque> #include <algorithm> ...

  2. 小米Note全网通支持7模19频:先发标准版

    2015-06-26 16:42:53 17749 次阅读 9 次推荐 稿源:安卓中国 43 条评论 感谢安卓中国的投递 自古一入电信深似海,从此手机没法买.现在首台全网通小米手机即将诞生.6 月 2 ...

  3. memcached 经常使用命令最全总结大全

    1.首先.总结一下memcached的一些基本设置 -p 监听的port -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached ...

  4. C++数组类型与函数类型

    之所以将C++的数组类型与函数类型拿到一块说,是因为两者在很多地方都一样. 首先,声明形式上类似: 数组类型:  type [num]                                 ...

  5. spring入门之JdbcTemplate 操作crud

    Spring 通过调用 JdbcTemplate来实现对数据库的增删改查,主要用到JdbcTemplate类的4个方法,首先,配置数据库信息,创建对象,代码通用: //设置数据库信息 DriverMa ...

  6. python 模块中__all__作用

    test.py文件开头写上__all__=[func1,func2] 当其他文件导入  from test import * 只会导出"[func1,func2]"里面的,其他调用 ...

  7. linux oracle配置开机启动

    参考:http://jingyan.baidu.com/article/b2c186c8fe4306c46ef6ff16.html 先以root身份登录到linux系统, 1. 修改vi /etc/o ...

  8. Asp.Net 无刷新文件上传并显示进度条的实现方法及思路

    相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认”拿来主义“,只是我个人更喜欢凡是求个所以 ...

  9. Java基础教程笔记

    第一部分——java基础程序设计 一:java语言特色 1:语言有点:“一次编写,到处运行” 2:相对于C++A:提供了对内存的自动管理:B:去除了C++语言中的“指针”:C:避免了赋值语句(如a=3 ...

  10. 怎么把顶部的Django administration去掉!!

    /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/django/contrib/admin/t ...