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>

时间: 2024-10-21 21:32:38

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

Asp.Net Mvc 学习笔记总结(自学第一天)

今天是第一天学习,主要总结了下面两个问题.由于是自学,总结的可能会有纰漏希望大家积极指正(微笑). 1.什么是Mvc?为什么要用Mvc? 2.如何使用Mvc快速实现入门级别的开发? 这里先说一下什么是Mvc:首先Mvc是一种架构模式:第二Mvc不等同于三层:第三Asp.net Mvc是延用了Mvc思想做出来的一款基于三层中的UI层的一款产品:那么Mvc架构模式是什么意思呢?当然这个架构模式20世纪80年代就已经提出来了.当时的提出的时候并没有标准的输入输出设备,只是为了单纯的区分开来输入.输出和

ASP.NET MVC 学习笔记(1)

从头开始系统地学习ASP.NET MVC

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

1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“:”结尾.代码块中定义的变量可能会被同一个域中的其他块使用.比如,定义在视图顶部的变量可以被同一视图中的代码块和代码段访问. 3.         布局 Razor通过layouts保持网页外观布局的一致性.布局模板包含基本的标签,并可以指定渲染视图内容的位置.比如 基本布局文件(_Layout.cshtml) <!DOCTYPE Html> <ht

【转】ASP.NET MVC学习笔记-Controller的ActionResult

1. 返回ViewResult public ActionResult Index()   {       ViewData["Message"] = "Welcome to asp.net MVC!";       return View();   }  public ActionResult Index(){    ViewData["Message"] = "Welcome to ASP.NET MVC!";    re

ASP.NET MVC 学习笔记-2.Controller

MVC中,Controller用来响应对ASP.NET MVC网站的请求,每个浏览器请求都会被映射到特定的Controller实例上,Controller针对请求可能会进行以下处理:向浏览器返回特定的视图或者对请求进行重定向到别的Controller. Controller实质是一个类,都派生于Controller(System.Web.Mvc.Controller基类). Controller上公共的方法称为ControllerAction,ControllerAction不能重载且不能为静态

【ASP.NET MVC 学习笔记】- 13 Child Action

本文参考:http://www.cnblogs.com/willick/p/3410855.html 1.Child action 和 Patial view 类似,也是在应用程序的不同地方可以重复利用相同的子内容.不同的是,它是通过调用 controller 中的 action 方法来呈现子内容的,并且一般包含了业务的处理.任何 action 都可以作为子 action .示例: //1.ChildActionOnly 特性保证了该 action 只能作为子action被调用(不是必须的) [

【ASP.NET MVC 学习笔记】- 14 HtmlHlper的扩展方法

本文参考:http://www.cnblogs.com/willick/p/3428413.html 1.在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的 HtmlHelper,习惯上我们把 HtmlHelper 中的(扩展)方法叫 HtmlHelper Method,简称为Helper Method.它的作用是把生成 Html代码的任务交给 MVC,以便 MVC 能完成很多自动处理的工作.我们在 View 中使用的 Html.ActionLink.H

【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)

本文参考:http://www.cnblogs.com/willick/p/3331521.html 1.继承IController接口,示例代码将当前请求的Controller和Action打印到浏览器: public class BasicController : IController { public void Execute(RequestContext requestContext) { string controller = (string)requestContext.Route

【ASP.NET MVC 学习笔记】- 04 依赖注入(DI)

本文参考:http://www.cnblogs.com/willick/p/3223042.html 1.在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种"需要",就称为依赖注入(Dependency Injection). 2.依赖注入和和所谓的控制反转(Inversion of Control )是一个意思. 3.依赖注入是通过接口实现松耦合的设计模式,是解耦的重要手段. 4.依赖注入分为两步:移除对组件的依赖:通过类的构造器(或setter访问器)