zoukankan      html  css  js  c++  java
  • ASP.NET MVC学习笔记 第二天

    创建视图
         返回给客户端的HTML代码最好通过视图指定。视图都在Views文件夹中定义。ViewsDemo控制器的视图需要一个ViewsDemo子目录,这是视图的约定。
         可以把多个控制器使用的视图(以及多个视图使用的特殊部分视图)放在Shared目录中。
         在代码编辑器中选择Index方法右键单击,选择Add|View命令创建视图。
         向视图传递数据:
    控制器和视图运行在同一个进程中。视图直接在控制器内创建,这便于从控制器向视图传递数据。可使用ViewDataDictionary。更简单的语法是使用ViewBag属性。ViewBag是动态类型,运行指定任何属性名称,以向视图传递数据:
            public ActionResult PassingData()
            {
                ViewBag.MyData = "Hello from the controller";
                return View();
            }
    为访问控制器传递的数据,可以使用类似的方式使用ViewBag。类似于Controller基类,ViewBag属性在视图的基类WebViewPage中定义:
    < body>
        <div>
            <div> @ViewBag. MyData</div >
        </div>
    </ body>
     

    Razor语法:Razor使用@自付作为迁移自付。@字符后的代码是C#代码。Razor可以自动检测到C#代码的结束位置。
    使用Razor语法时,需要区分返回值的语句和不返回值的方法。返回的值可以直接使用。
         如果调用没有返回值的方法,或者指定其他不返回值的语句,需要使用Razor代码块:下面定义一个字符串变量:
                @{
                    string name = "Angela" ;
                }
    使用迁移字符,即可通过简单的语法使用变量:
              <div> @(name ),Stephanie</div >
    foreache块也可以定义Razor代码块           
                @foreach (var item in Model)
                {
                    <li style=" font-size: 50px">@item.Text</li >
                }
     
     

    强类型视图
    使用ViewBag向视图传递数据只是一种方式。另一种方式是向视图传递模型。
    这里创建了Menu想的一个新列表,并把该列表传递给基类Controller的View方法。
            public ActionResult PassingAModel()
            {
                var menus = new List< Menu>
                {
                    new Menu {Id=1,Text="Schweinsbraten mit Knodel und",Price=6.9,Category= "Main"},
                    new Menu {Id=2,Text="Shanghai is good",Price=6.9,Category= "Vegetarian"},
                    new Menu {Id=3,Text="Beijing huanyingni",Price=6.9,Category= "Main"},
                };
                return View(menus);
            }
     
    动作方法内的信息可以作为模型在视图内使用:
    @using MVCtest.Models
    @model IEnumerable< Menu>
    @{
        Layout = null;
    }
    <!DOCTYPE html>
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title >PassingAModel</ title>
    </head>
    <body>
        <div >
            <ul>
                @foreach (var item in Model)
                {
                    <li style=" font-size: 50px">@item.Text</li >
                }
            </ul>
        </div >
    </body>
    </html>
  • 相关阅读:
    基于摸板匹配的目標跟蹤算法
    spoj 2713 Can you answer these queries IV
    zoj 3633 Alice's present
    hdu 3642 Get The Treasury
    poj 1195 Mobile phones
    poj 2760 End of Windless Days
    zoj 3540 Adding New Machine
    spoj 1716 Can you answer these queries III
    spoj 1043 Can you answer these queries I
    spoj 2916 Can you answer these queries V
  • 原文地址:https://www.cnblogs.com/lopengye/p/5133295.html
Copyright © 2011-2022 走看看