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. cf #363 c

    C. Vacations time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  2. Unity3d地形刷入自定义树木

    Unity3d中新建地形后,可以在地形上刷草及树木等植物.那么接下来讲的就是如何刷入自定义树木. 我没有自定义的树木素材,所以就以导入的坦克模型为例,目标是将坦克模型的炮塔部分作为自定义“树木”刷入地 ...

  3. java 通过Apache poi导出excel代码demo实例

    package com.zuidaima.excel.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutput ...

  4. 【Ubuntu安装,ATX基于uiautomator2】之安装步骤

    Ubuntu系统下安装uiautomator2步骤: 1.安装命令: pip install --upgrade --pre uiautomator2 但是报错: Command "pyth ...

  5. Struts2开发者模式

    在Struts2开发中,这应该是第一个学习配置的值.为了启用 Struts 2 的开发模式,可以通过自动配置显著增加Struts2的开发速度和属性文件加载,以及额外的日志和调试功能. 注:自动重新加载 ...

  6. 慢慢理解RESTful架构

    <理解本真的REST架构风格> 作者:李锟 链接:http://www.infoq.com/cn/articles/understanding-restful-style/ <理解R ...

  7. Unity官方发布热更新方案性能对照

    孙广东  2016.3.11 Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda •  什么是热更新 •  为何要热更新 •  怎样在iOS 上对 ...

  8. ASP.NET:把ashx写到类库里并在页面上调用的具体方法

    在类库中建Http Handler的操作很简单,就是添加一个普通的类,然后把之前ashx里的代码几乎一模一样贴到这个类中.但要注意命名空间和类名,因为之后我们会用 到.样例Handler: names ...

  9. js事件绑定的方法

    废话不多少,直接上代码 第一种 <body> <div style="width:400px;height:400px;background:blueviolet" ...

  10. 1718 Cos的多项式

    1718 Cos的多项式 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 小明对三角函数充满了兴趣,有一天他突然发现一个神奇的性质. 2cos(nx)似乎可以表示成 ...