MVC 注意点
1、 控制器类 中包括的任何一个公共函数 都被当做一个控制器行为 暴露在外,注意,控制器行为时暴露给所有人的,任何人都可以在他们的浏览器地址栏中输入正确的 URL 来调用控制器行为,因此,当你不想让函数为公共调用就不要将其创建成公共函数。
控制器行为返回一个行为结果( ActionResult ),一个行为结果代表行为所做的事情。
2、 一个 URL 不等于一个页面
当你构建一个传统的 ASP.NET Web 窗体应用程序或 ASP 应用程序时,一个 URL 就对应一个页面,它们是一对一的关系,如果你向服务器请求一个名为 SomePage.aspx 的页面,那么在硬盘上都有一个文件的名字叫做 SomePage.aspx ,如果不存在这个文件,就会返回一个 404-Page Not Found 的错误。
在构建 ASP.NET MVC 应用程序时, URL 和页面就不是一一对应关系了,在 ASP.NET MVC 应用程序中,一个 URL 对应一个控制器行为, 而不是硬盘上的一个页面文件。
在传统 ASP.NET 和 ASP 应用程序中,浏览器请求被映射到页面,在 ASP.NET MVC 应用程序中,浏览器请求映射到控制器行为, ASP.NET 应用程序是以内容为中心 ,相反, ASP.NET MVC 应用程序是以应用逻辑为中心 。
3、 理解 MVC 模型
MVC 模型包括应用程序的所有逻辑,这些逻辑在视图和控制器都是没有的,模型( Models )应该包括应用程序所有的业务逻辑和数据库访问逻辑。
视图应该只包括与用户接口有关的逻辑,控制器应该只包括暴露给请求返回正确视图的最小逻辑或将用户重定向到另一个控制器行为的逻辑 ,除此之外,其他任何逻辑都应该包括在模型中。通常,应该为控制器减肥,为模型增肥。 控制器方法应该只包括很少的代码。
4、 ASP.NET MVC 框架支持六个标准类型的行为结果:
l 视图结果( ViewResult ):表示 HTML 和标记
l 空结果( EmptyResult ):表示没有结果
l 重定向结果( RedirectResult ):表示重定向到一个新的 URL ,
l 重定向到路由结果( RedirectToRouteResult ):表示重定向到一个新的控制器行为。
l JsonResult :表示可以用于 AJAX 应用程序的 JavaScript 对象标记结果。
l 内容结果( ContentResult ):表示一个文本结果
大多数情况下,返回视图结果。
正常情况下,调用下面的控制器基础类方法:
l View :返回一个 ViewResult 行为结果
l Redirect :返回一个 RedirectResult 行为结果
l RedirectToAction :返回一个 RedirectToActionResult 行为结果
l RedirectToRoute :返回一个 RedirectToRouteResult 行为结果
l Json :返回一个 JsonResult 行为结果
l Content :返回一个 ContentResult 行为结果