创建视图
     返回给客户端的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>

ASP.NET MVC学习笔记 第二天的更多相关文章

  1. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  2. ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则

    ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...

  3. ASP.NET MVC学习笔记-----Filter2

    ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...

  4. ASP.NET MVC学习笔记-----Filter

    ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...

  5. ASP.NET MVC学习笔记-----Filter(2)

    接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...

  6. ASP.NET MVC 学习笔记(1)

    从头开始系统地学习ASP.NET MVC 为什么要学习ASP.NET MVC?原因很多,可以先来看一下最早的ASP.NET WebForm的一些缺点: 传说中面试经常要问到的ASP.NET WebFo ...

  7. ASP.NET MVC 学习笔记-2.Razor语法

    1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“:”结尾.代码块中定义的变量可能会被同一个域中的其他块使用. ...

  8. ASP.NET MVC学习笔记(一) 从路由开始创建mvc

    之前一篇写一半发现版本太老了,是基于mvc2的. 两本参考书编写的顺序各方面都不太一样.决定重新写一篇. 我这篇文章基于mvc5,vs2015 参考书:Will保哥的ASP.NET MVC4开发指南 ...

  9. ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用

    Ajax的全名为:Asynchronous Javascript And XML(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术.Ajax技术首先向Web服务器发送 ...

随机推荐

  1. HDU – 1050 Moving Tables

    http://acm.hdu.edu.cn/showproblem.php?pid=1050 当时这道题被放在了贪心专题,我又刚刚做了今年暑假不AC所以一开始就在想这肯定是个变过型的复杂贪心,但是后来 ...

  2. CentOS7.6下模拟iSCSI,Windows来连

    如题,在CentOS7上模拟一个iSCSI设备,然后在Windows Server 2008上连接这个iSCSI设备 第一步,CentOS7上的操作.CentOS7上安装iSCSI模拟器需要3个包,我 ...

  3. 【编程技术-Shell】AWK使用大全

    1.  AWK中输出特殊字符 输出单引号 涉及到转义字符,但是在使用普通的方法进行转义时,会遇到下面的问题 正确的方法:'\'',使用单引号将转义字符括起来,然后后面加上单引号 输出其他特殊字符 输出 ...

  4. C# 文件读写系列三

    1.读写文本文件 在C# 文件读写系列二中列举了相当多的读写文本文件的方法,大致有以下几种: (1).通过静态类File的静态方法来进行文本文件的读写,主要有ReadAllBytes().ReadAl ...

  5. IE8下不识别indexOf的问题

    1.为Array原型添加indexOf方法(如果学过面向对象,相当于给Array类添加实例方法),方法体如下: //添加数组IndexOf方法 if (!Array.prototype.indexOf ...

  6. 利用keepalived构建高可用MySQL-HA

    关于MySQL-HA,目前有多种解决方案,比如heartbeat.drbd.mmm.共享存储,但是它们各有优缺点.heartbeat.drbd配置较为复杂,需要自己写脚本才能实现MySQL自动切换,对 ...

  7. Linux下批量修改文件及文件夹所有者及权限

    Linux下批量修改文件及文件夹所有者及权限需要使用到两个命令,chmod以及chown 例:对/opt/Oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 700 /opt ...

  8. linux 下vim的使用(必看)

    vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...

  9. php 析构函数,构造函数

    php 析构函数,构造函数   <?php /** * 测试使用的PHP操作类 * Date: 2017/7/13 * Time: 14:22 */class Test{ /** 姓名 */ p ...

  10. bug:执行到数据库连接后停止运行,而且不报错的奇怪情况----可能是多方同时访问造成的

    数据库运行过程中奇怪停止. 即执行到“database connected ”停止运行,而且不产生任何报错信息 程序反复检查没有问题,折腾半天解决了: 可能是多个客户端操作同一个表格,多方同时操作造成 ...