MVC说明文档.doc_第1页
MVC说明文档.doc_第2页
MVC说明文档.doc_第3页
MVC说明文档.doc_第4页
MVC说明文档.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MVC3项目创建:*.空模板选项只生成一个MVC3应用程序所需要的最少文件和文件夹;*.Internet应用程序选项生成一个小型的例子应用程序,可在其上修改并建立其它功能;它包括了用户注册与认证、导航以及一个协调的视觉样式;*.internet应用程序更小些,但它是设计用于通过一个域/活动目录体系结构进行用户认证的环境;*.Razor视图可以使得Web应用程序的开发变压器得更加方便快捷;第一外MVC例子: 不用视图:public string Index() return 我是?第一?个?MVC3的?例y子-; 默认视图:public ActionResult Index() return View(); 指定视图: public ActionResult Index() return View(EmptView); public string Index(string name,int age=18) return 欢?迎-您:o+name+ 您的?年龄?:o+age; 调用:http:/localhost:1452/test?name=aaahttp:/localhost:1452/test?name=aaa&age=20默认视图传参以及控制器将数据传递给视图:控制器: public ActionResult Index(string name, int age = 18) ViewBag.vName = name; ViewBag.vAge = age; return View(); 视图: 欢?迎-您:o ViewBag.vName 您的?年龄?为a:oViewBag.vAge调用:http:/localhost:1452/test?name=aaahttp:/localhost:1452/test?name=aaa&age=20指定视图传参以及控制器将数据传递给视图:控制器: public ActionResult Index(string name, int age = 18) ViewBag.vName = name; ViewBag.vAge = age; return View(EmptView); 视图: 欢?迎-您:o ViewBag.vName 您的?年龄?为a:oViewBag.vAge调用:http:/localhost:1452/test?name=aaahttp:/localhost:1452/test?name=aaa&age=20讲解:1. 控制器、视图的名称、动作方法及文件夹命名规则;2. 地址栏规则; 将for循环在视图中实现: for (int i = 0; i ViewBag.vAge; i+) 将?for在视图?中D书写第 i 次? 一个URL并不等同于一个页面当你创建一个传统的ASP.NET Web窗体应用程序,或者是一个动态服务器页面(ASP)应用程序,在URL与页面之间存在一对一的对应。如果你请求服务器上的一个名为SomePage.aspx的页面,那么最好在磁盘上有一个SomePage.aspx页面。如果SomePage.aspx文件并不存在,你将会获得一个丑陋的404-页面不存在错误。当创建一个ASP.NET MVC应用程序时则大不相同,你键入到浏览器地址栏的URL与你应用程序中的文件之间并没有一个对应关系。在一个ASP.NET MVC应用程序中,一个URL与一个控制器的动作相对应,而不是磁盘上的页面。对于一个传统的ASP.NET或者ASP应用程序,浏览器请求被映射到了页面。在ASP.NET MVC应用程序中,浏览器请求被映射到了控制器动作。一个ASP.NET Web窗体应用程序是以内容为中心的。而一个ASP.NET MVC应用程序则以是应用程序逻辑为中心的。MVC各块的作用:MVC与传统WEB请求的差别:对于一个传统的ASP.NET或者ASP应用程序,浏览器请求被映射到了页面。在ASP.NET MVC应用程序中,浏览器请求被映射到了控制器动作。一个ASP.NET Web窗体应用程序是以内容为中心的。而一个ASP.NET MVC应用程序则以是应用程序逻辑为中心的。理解控制器之ASP.NET MVC中控制器、控制器动作以及控制器动作结果控制器负责用户与MVC应用程序交互的方式。当用户发出浏览器请求时,控制器决定向用户发回什么样的响应控制器中的任何公共方法都被暴露为一个控制器动作。对此你需要多加小心。这就意味着包含在控制器中的任何公共方法都可以由任何可以访问互联网的人调用,通过在浏览器中输入正确的URL。控制器应该仅仅只包含最少量的逻辑,用于返回正确的视图或者将用户重定向到另一个动作。任何其他的事情都应该包含在模型中。控制器可能会返回一个特定的视图,或者是将用户重定向到另一个控制器一个控制器是一个继承自System.Web.Mvc.Controller基类的类。因为控制器继承自这个基类,所以控制器轻松地继承了一些有用的方法控制器动作方法:一个控制器动作必须是控制器类的一个公共方法。C#方法,默认时,是私有方法。意识到你添加到控制器类中的任何公共方法都会自动被暴露为控制器动作(你必须非常小心,因为控制器动作可以被全球的任何人调用,仅仅简单地通过在浏览器地址栏输入正确的URL)。控制器动作还要满足一些额外的需求。作为控制器动作来使用的方法不能够重载。另外,控制器动作不能为静态方法。除了这些以外,你可以将任何方法作为控制器动作来使用。控制器的结果:控制器动作返回一种叫做动作结果(Action Result)的东西。动作结果是控制器动作返回给浏览器请求的东西。ASP.NET MVC框架支持六种标准类型的动作结果:1. ViewResult 代表HTML及标记。2. EmptyResult 代表无结果。3. RedirectResult 代表重定向到一个新的URL。4. RedirectToRouteResult 代表重定向到一个新的控制器动作。5. JsonResult 代表一个JSON(Javascript Object Notation)结果,它可以用于AJAX应用程序。6. ContentResult 代表着文本结果。所有这些动作结果都继承自ActionResult基类。在大多数情况下,控制器动作 ViewResult。例如,代码清单2中的Index()控制器动作返回了一个ViewResult。注意到代码清单2中的Index()动作并没有放回一个ViewResult()。而是调用了Controller基类的View()方法。通常情况下,你并不直接返回一个动作结果。而是调用Controller基类的下列方法之一:1. View 返回一个ViewResult结果。2. Redirect 返回一个RedirectResult 动作结果。3. RedirectToAction 返回一个RedirectToAction动作结果。4. RedirectToRoute 返回一个RedirectToRoute动作结果。5. Json 返回一个JsonResult动作结果。6. Content 返回一个ContentResult动作结果。因此,如果你想向浏览器返回一个视图,你可以调用View()方法。如果你想要降用户从一个控制器动作重定向到另一个,你可以调用RedirectToAction()方法。ContentResult动作结果很特别。你可以使用ContentResult动作结果来将动作结果作为纯文本返回。举个例子,如下代码中的Index()方法将消息作为了纯文本返回,而不是HTML。 public ContentResult Index() return Content(天涯?浪?子); 当调用上面动作时,并没有返回一个视图。而是向浏览器返回了原始的文本“天涯浪子”。注意:创建控制器类应该注意:u 如果你创建一个控制器,它不含有Controller后缀,那么你将无法调用这个控制器u 我们应该总是在Controllers文件夹中创建控制器(虽然不这么做也可以)。否则的话,就破坏了ASP.NET MVC的惯例,其他的程序员将会花费更多艰辛的时间来理解你的应用程序。创建动作方法应该注意:为了将方法作为一个动作公布给全世界,方法必须满足特定的要求: 方法必须是公共的。 方法不能是静态方法。 方法不能使扩展方法。 方法不能是构造函数,访问器,或者设置器。 方法不能拥有开放泛型类型(open generic types)。 方法不能使控制器基类中的方法。 方法不能含有ref或者out参数。 阻止公共方法被调用使用NonAction特性进行了修饰 NonAction public ContentResult Index() return Content(天涯?浪?子); 包含在控制器类中的任何公共方法,都被暴露为控制器动作。注意这里。一个控制器动作被暴露给了全世界。任何人都可以通过在Web浏览器的地址栏中输入正确的URL来调用控制器动作。因此,在你并不需要方法被调用时,不要随意地在控制器中创建公共方法。理解视图视图含有将会发送给浏览器HTML标记和内容。当使用ASP.NET MVC应用程序时,一个视图等同于一个页面。一般而言,如果你想为一个控制器动作返回一个视图,那么你需要在Views文件夹下创建一个子文件夹,这个文件夹与你的控制器同名。在子文件夹下,你必须创建一个.aspx文件,它的名字与控制器动作相同。视图应该仅包含与生成用户界面有关的逻辑。默认情况下,视图应该和与其相应的控制器动作拥有相同的名称。视图同样应该被置于一个文件夹中,该文件夹与控制器的名称相对应。Add new Task:这个链接指向到了/Home/Create路径。当你点击这个链接,HomeController的Create()动作将会被调用。Create()方法返回Create视图理解模型MVC的模型包含了你应用程序中的所有逻辑,这些逻辑没有包含在视图或者控制器中。模型应该包含你的应用程序中的所有业务逻辑和数据库访问逻辑。例如,如果你使用LINQ to SQL访问数据库,那么你可以在Models文件夹中创建你的LINQ to SQL类(你的dbml文件)。理解HTML HelpersASP.NET MVC框架包含了下面的标准HTML Helpers集合(这里没有列全): Html.ActionLink() Html.BeginForm() Html.CheckBox() Html.DropDownList() Html.EndForm() Html.Hidden() Html.ListBox() Html.Password() Html.RadioButton() Html.TextArea() Html.TextBox()Html.BeginForm()Helper方法用于创建HTML的开闭标签。注意到Html.BeginForm()方法在一个using语句内被调用。using语句确保了标记在using块末尾关闭。如果你喜欢,可以不创建using块,你可以调用Html.EndForm()Helper方法来关闭标签。使用对你来说感觉最好的方式来创建的开闭标签。Html.TextBox()Helper方法用于在代码清单1中呈现HTML标签。如果你在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论