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. UITabelViewFootView(转)

    在处理UITableView表格时,我们希望在View底部添加按钮. 用户拖动UITableView时按钮能跟随移动. 如题,实现如下界面: - (CGFloat)tableView:(UITable ...

  2. MapReduce源码分析之JobSubmitter(一)

    JobSubmitter,顾名思义,它是MapReduce中作业提交者,而实际上JobSubmitter除了构造方法外,对外提供的唯一一个非private成员变量或方法就是submitJobInter ...

  3. 项目实战:JSP应用开发_接口:接口的实现

    在类的声明中使用implements关键字来实现接口,一个类可以同时实现多个接口,各接口间用“,”隔开. class classname implements interfacename{   //重 ...

  4. Python 爬虫实战2 百度贴吧帖子

    爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的任意帖子进行抓取 指定是否只抓取楼主发帖内容 将抓取到的内容分析并保存到文件 1.URL格式的确定 首先, ...

  5. spark hive结合杂记(hive-site.xml)

    1.下载spark源码,在spark源码目录下面有个make-distribution.sh文件,修改里面的参数,使编译后能支持hive,修改后执行该文件.(要预先安装好maven才能编译). 2.将 ...

  6. (转)Unity3D集成SVN进行版本控制

    首先,AssetServer确实很好用,Unity内部集成的管理界面,操作很简单,提交冲突的后还可以进行文件比对.但学习使用过程中,发现文件体积较大的项目文件目录(600M),我提交不上去,会返回没有 ...

  7. c/c++输入处理,制定变量参数和值

    void usage(char* s){ fprintf(stderr, "\n"); fprintf(stderr, "%s -s <source file> ...

  8. java的一些问题

    1. 判断是否是奇数: public static boolean isOdd(int i) { return i %2 != 0 ; } 2. System.out.println(2.0 - 1. ...

  9. Oracle SQL*Loader 数据导入工具

    SQL*Loader是一个向Orale大量倒数据的工具,可以从界定文件中导入数据如用 , 界定的,可以从定宽的文件导入数据,

  10. java MD5工具类

    package com.common.tools; import java.security.MessageDigest; /** * MD5加密工具类 * <功能详细描述> * * @a ...