创建视图
     返回给客户端的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. C#接口实现多态

    我比较喜欢对感兴趣的理论进行反复的理解甚至理解背诵下来,接下来再复习一下什么叫多态(哈哈哈) 多态:在同一粒度视图下对相同类型的事物不做区别的统一操作 接下来看一下接口和引擎类是如何实现多态的: 一. ...

  2. CentOS 7 安装程序介绍

    (一).引导菜单 使用 UEFI 引导 Install CentOS Linux 7 选择此选项开始在你的计算机系统中使用图形安装程序安装 CentOS 7 Test this media & ...

  3. Hibernate 工具类

    1.HibernateConfigUtil.java(HIbernate配置工具类) import org.hibernate.Session; import org.hibernate.Sessio ...

  4. mysql中字符串1.1/1.2/1.2.2/1.2.5排序问题

    1.创建查询函数:(split_pid为函数名称) create function split_pid(str varchar (1000),delimiter varchar(1)) returns ...

  5. python之守护进程

    主进程创建子进程,然后将该进程设置成守护自己的进程,守护进程就好比崇祯皇帝身边的老太监,崇祯皇帝已死老太监就跟着殉葬了. 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二 ...

  6. 在微信移动端input file拍照或从相册选择照片后会自动刷新页面退回到一开始网站进入的页面

    <input type="file" accept="image/*"/> 调用打开摄像头后,聚焦后拍照,点击确认,这时页面会出现刷新动作,然后回退 ...

  7. Java学习之路(六):集合

    集合的由来 数组的长度是固定的,当添加的元素超过了数组的长度,就需要对数组重新定义 java内部给我们提供的集合类,能存储任意对象,长度是可以改变的.随着元素的增加而增加,随着元素的减少而减少 数组和 ...

  8. 【es6】正则扩展

  9. Windows和Ubuntu双系统时间相差8个小时的问题

    由于要学编程,在windows 10上安装了Ubuntu16.04双系统.但是却造成windows时间老是比实际时间慢八个小时,Ubuntu会与网络同步时间,但是在程序中调用主板时间时仍然是UTC时间 ...

  10. Maven报错:maven-archetype-webapp:RELEASE from any of the configured repositories

    今天学习maven,在控制台下新建maven项目没有问题,但是在STS(eclipse)下创建maven项目老是报错,郁闷死了: ----------------------------------- ...