MVC - Model - Controller - View
一。 Model
1.1 在ASP.NET MVC 中 model 负责的是所有与 "数据“ 相关的的任务。
也可以把Model 看成是 ASP.NET 中三层模式的 BLL层 加 DAL层。
1.2 model层中试用ORM信息反问技术 : LINQ to SQL ,Entity Framework,NHibernate, 等。
何为 ORM 技术:对象关系映射。
即:ORM是将结构化的关系型数据,映射到对象模型。如果以 Entity Framework 来说,就是视图将关系数据库的中数据转化成.net原生对象。
二。 Controller
2.1 ASP.NET MVC 中的 Controller.
在 MVC 中所有的Controller都是默认继承自 System.Mvc.Controller
Controller是一个类,类中有许多Method 也就是 Action 。负责处理浏览器来的所有要求
也就是浏览器通过 实例化 Controller 类 查找对应的Action。来响应View。
Controller /Action/id.
2.2 Controller 必须为公开类别。
Controller 名称必须以Controller 结尾。
2.3 当Controller找不到对应Action会默认运行System.Mvc.Controller类别的 HandleUnknownActon 方法。
会默认响应404找不到资源错误信息。
在 MVC 中所有的Controller都是默认继承自 System.Mvc.Controller
System.Mvc.Controller类别中 ”HandleUnknownActon “ 方法被标注为 ‘virtual’ ,虚方法,这是可以被重写的。‘Override’.
因此可以在Controller 中自定义找不到Action的方法。
protected override void HandleUnknownActon(string strName)
{
Response.Redirect("http://www.google");
}
2.4 Controller 中的NoAction
[NoAction]
public ActionResult Index()
{
}
使得 Controller 中的公开方法 不发布到到web上 等同于private效果
2.5 http限定
httpGet, httpPost,httpDelte,HttpPut,HttpHead,HttpOptions,HttpPatch属性(Attributes)都是动作方法选定器的一份子。
[HttpGet]
public ActionResult Index()
{ }
上面标示只有http Get 请求时ActionInvoker 才会选定这个Action.
2.6 Controller 中的 ActionResult
ActionResult 是Action运行后的回传。
2.7 Controller 中的 ViewResult
return View();
检视 视图返回客户端。 可以选择指定页。
return View(“AAA”);
2.8 Controller 中的 PartialViewResult
与ViewResult 类似。不同点在于,它不能指定页。
2.8 Controller 中的 EmptyResult.
不回传。
2.9 Controller 中的ContentResult.
return Content(str);
输出文字属性 html文本等。
3.0 Controller 中的FileResult.
3.1 JavaScriptResult.
用来响应JavaScript程序代码给浏览器。
public ActionResult JavaScript()
{
return JavaScript("alert('OK')");
}
3.2 JsonResult.
返回Json格式。
public ActionResult Json()
{
return Json(new { id = 1, name = "will" });
}
3.3 RedirectReult
重新导向到其他网址。
public ActionResult Redirect()
{
return RedirectPermanent("Home/NewIndex");
}
3.4 RedirectToRute
与RedirectReult类似。它会匹配路由。
3.5 HttpStatusCodeResult, HttpNotFoundResult, HttpUnauthorizeResult.
三 。 View
View是负责将Controller 传来的数据转换成HTML 格式输出。
4.1 Razor 。 区别于<%:DateTime.Now %>
Razor语法 @DateTime.Now
@if(ViewBag!=null)
{
<span>启用</span>
}
else
{
<span>禁用</span>
}
4.2 @helper 辅助方法。
类似自定义函数。
@helper ShowUnitPrice(int price)
{ }
就可以在任何地方调用
@ShowUnitPrice(model.price)
4.3 @functions 函数
4.4 @model 设置页面强类型数据模型
MVC - Model - Controller - View的更多相关文章
- MVC(Model(模型) View(视图) Controller(控制器))
复习 1. 商品表 增删改查 index.php add.php view.php edit.php action.php 2. MVC(Model(模型) Vie ...
- Android之MVC——Model通知View去更新(实用)
下面两段标红加深的代码是重点: import android.app.Activity; import android.os.Bundle; import android.view.View; imp ...
- ASP.NET MVC轻教程 Step By Step 4——Model、View和Controller
ASP.NET MVC中的Model(数据模型)主要包括定义数据结构.数据库读写.数据验证等等和对象处理相关的工作. 在解决方案资源管理器中找到Model文件夹,点击右键,添加一个新类,名为“Mess ...
- What is the difference between Reactjs and Rxjs?--React is the V (View) in MVC (Model/View/Controller).
This is really different, React is view library; and Rxjs is reactive programming library for javasc ...
- 2017年第1贴:EXT.JS使用MVC模式时,注意如何协调MODEL, STORE,VIEW,CONTROLLER的关系
也调了快一天,死活找不到窍门. MODEL, STORE,VIEW的调置测试了很久,试了N种方法,不得其果. 最后,试着在APPLICATION里加入CONTROLLER, 在CONTROLLER里加 ...
- Asp.Net MVC中Controller与View之间传递的Model
Controller --> View 的Model 与 提交表单后 View --> Controller 的Model 不是相同的对象,即:这两个Model为不同的指针,指向不同的地址 ...
- MVC:Controller向View传值方式总结
Controller向View传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通Vie ...
- ASP.NET MVC中controller和view相互传值的方式
ASP.NET MVC中Controller向view传值的方式: ViewBag.ViewData.TempData 单个值的传递 Json 匿名类型 ExpandoObject Cookie Vi ...
- Asp.Net Core 入门(四)—— Model、View、Controller
和我们学习Asp.Net MVC一样,Asp.Net Core MVC的Model.View.Controller也和我们熟悉的Asp.Net MVC中的相似.不同的是我们在使用Asp.Net Cor ...
随机推荐
- Intent使用方法
显示Intent 通过构造函数的重载,创建Intent对象,并用startActivity()启动目标活动. 目标活动需要在AndroidManifest.xml中注册 ...... Intent i ...
- 【转】Apache JMeter web性能测试实例
Apache JMeter是可以对利用HTTP或FTP服务器的应用程序进行测试的工具.它是基于Java的,通过所提供的API它还具有高度可扩展性.典型的JMeter测试包括创建循环和线程组.循环使用预 ...
- 概念与用法-cookie,session,auth (认证系统)
COOKIE 与 SESSION 概念 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...
- MyBatis多表映射demo
三个实体类,作者.文章和评论. public class Author { private int id; private String username; private String nickna ...
- 路边拾遗之其他模块(struct/csv/xlwt/smtp)
struct模块 最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的 ...
- Python3.x 常用的新特性
Python3.x 常用的新特性 print() 是函数,不是一个语句 raw_input()输入函数,改为 input() Python 3 对文本和二进制数据做了更为清晰的区分. 文本由unico ...
- typedef struct与struct的区别
typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据 ...
- 前端xss攻击
xss是什么 xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌 ...
- SQLServer中的事物与锁
了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...
- Linux开机启动详解
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...