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 ...
随机推荐
- SourceTree使用介绍
SourceTree比命令行更容易操作,能更直观看到发生了什么.但是没有哪一家git图形化软件能完成git的所有操作,封装后的使用也隐藏了git的一些细节,在图形化工具出现一些非常罕见的情况时,还是需 ...
- Appium+python自动化29-toast消息(亲测 ok)
本篇转自博客:上海-悠悠 前言 appium1.5以后的版本才支持toast定位,并且 'automationName'得设置为'Uiautomator2',才能捕获到. 一. Supported P ...
- NoSuchBeanDefinitionException: No bean named 'shiroFilter' is defined
以前运行正常的项目,过了一段时间再运行时出问题,打开链接无反应,无法访问Tomcat,空白页面. 经检查发现,在Tomcat log中有报错: NoSuchBeanDefinitionExceptio ...
- python中常用模块详解二
log模块的讲解 Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适: logger提供了应用程序可以直接使用的接口API: handler将(logger创建的 ...
- Py修行路 python基础 (十四)递归 及 面向对象初识及编程思想
一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策略时,必须有一个明确的递归结束条件 ...
- C#带百分比的进度条
功能需求: 如果程序中会执行一个耗时的计算过程,我想在用户点击按钮后,弹出一个进度条窗口,显示正在执行的进度(最好能带有百分比),执行完成后,进度条窗口关闭,回到主程序窗口. 在关闭子窗口之前父窗体不 ...
- PHP PDO SQLSERVER
$bbs = new PDO("odbc:MSSQLServer", $username_bbs, $password_bbs $bbs = new PDO('); $s ...
- xUtils怎么post请求上传json数据
InfoSmallCodeBinding smallCode = new InfoSmallCodeBinding(); smallCode.setSmallCode("测试"); ...
- 【问题】/usr/bin/env: php: 没有那个文件或目录
php不是默认安装的,在使用symfony创建新项目时,出现这个提示. [root@localhost html]# symfony demo /usr/bin/env: php: 没有那个文件或目录 ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 8_Neural Networks Representation 神经网络的表述
神经网络是一种受大脑工作原理启发的模式. 它在许多应用中广泛使用:当您的手机解释并理解您的语音命令时,很可能是神经网络正在帮助理解您的语音; 当您兑现支票时,自动读取数字的机器也使用神经网络. 8.1 ...