zoukankan      html  css  js  c++  java
  • MVC笔记 初识模型(一)

        今天有时间认真来学习mvc,记录一点基础的知识。

       1. Global.asax.cs文件夹中的一个RegisterRoutes()方法,如下图定义。

     1  public static void RegisterRoutes(RouteCollection routes)
     2         {
     3             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     4 
     5             routes.MapRoute(
     6                 "Default", // 路由名称
     7                 "{controller}/{action}/{id}", // 带有参数的 URL
     8                 new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
     9             );
    10 
    11         }

        其中id是定义网址路径如何对应MVC参数。

        MapRoute() 方法是定义MVC网址路由最主要的方式。每一特路由都定义了一下3个参数。

    •  路由名称。
    •  对网址路径如何对应到控制器、动作与路由值的设定。
    •  控制器、动作和其他路由值的默认值。

          通过这个默认的MapRoute()方法可以得知,在浏览器地址栏输入"http://localhost/Home/About"时,通过Routing的对应,由于网址路径一部分为"Home/About",所以会对应出"{controller}"为"Home","{action}"为"About"。因此,MVC会先进入"Controllers"目录,找到Home控制器(也就是HomeController.cs文件),然后再找到这个控制器内的About公开方法(Public Method)。这个公开方法就是MVC的Action,也是实际执行网页主要 程序的入口。

          TIP:在定义Routing时,你可能会注意到有一堆大括号"{}"包裹着一个变量,这个变量就是路由变量。在所有路由变量中最重要的就是controller变量和action变量,而且它们必须存在。就算没有设置网址路径,也必须制定路由变量的默认值才能使MVC正常运作。这两个变量在执行MVC动作时,会先被传送到System.Web.Mvc.MvcHandler类中,然后再被传送到DefaultControllerFactory类中,以建立Controller实体并执行制定的Action。其他的路由变量则可以由你自定义,而且也能被适当的用于Action中。

        2.HomeController类的默认内容,如下:

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Web;
     5 using System.Web.Mvc;
     6 
     7 namespace MvcApplication1.Controllers
     8 {
     9     [HandleError]
    10     public class HomeController : Controller
    11     {
    12         public ActionResult Index()
    13         {
    14             ViewData["Message"] = "欢迎使用 ASP.NET MVC!";
    15             ViewData["data"] = "小猫咪~ 喵喵~";
    16             return View();
    17         }
    18 
    19         public ActionResult About()
    20         {
    21             return View();
    22         }
    23     }
    24 }

         Controller类在开发的时候必须符合一下规范。

    • 类名称一定要以"Controller"结尾,例如"GuestbookController"代表Guestbook控制器。
    • 继承于Controller基类(或实现IController接口的类)。
    • 类中须包含数个返回值为"ActionResult"的公开方法,这些方法在MVC中称为Action。

         在默认的Index动作中,第一行的"ViewData"表示一个Dictionary对象,可以再View中读取改对象被设定的数据,示例如下:

     ViewData["Message"] = "欢迎使用 ASP.NET MVC!";

    利用VS功能新建切换至改动作的试图。如图:

    我们看到ViewData["Message"]对象被设定对了一个字符串。

    而在此试图中通过以下语法将数据读出并显示在网页中。

    <%: ViewData["Message"] %>

    TIP: "<%: ViewData["Message"] %>"语法是在Asp.NET 4.0中新增加的。在此之前的版本中,可以用"<% =Html.Encode(ViewData["Message"]) %>"语法替代它。这两种语法输出的结果完全相同。

     

  • 相关阅读:
    C语言中typedef可以出现在struct定义之前
    C语言编程规划——怎样用C语言设计一个程序
    如何去掉页眉页脚上的横线 如何去掉页眉上的横线 如何去掉页脚上的横线
    在Visual Studio 2005中使用WinPcap编写程序的配置方法
    使用WinPcap编程(1)——获取网络设备信息
    如何思考多维数组
    Visual Studio 2005编写C程序出错:error C2143,)前缺少*
    在Linux下运行peersim1.0.5
    Login failed for user 'IIS APPPOOL\DefaultAppPool'
    win2008 r2 安装sqlserver2005 sp3报错
  • 原文地址:https://www.cnblogs.com/Eleanore/p/2777586.html
Copyright © 2011-2022 走看看