asp.net mvc(2013-4-25)——使用模型为视图传递信息
2013-04-25 17:53
351 查看
前面一直没有用使用Models这个文件,Models其实是存放的是模型文件,这个和asp.net webform的三层架构的Model是如出一辙。
以下是专业的描述,摘自音乐商店说明文档:
术语 Model 表示应用表现的数据,通常,模型对象用来表示数据库中保存在表中的数据,也不一定如此。控制器的 Action 方法通过返回的 ActionResule 可以传送模型对象给视图。这就允许控制器可以将所有生成回应需要的数据打包,然会传送给视图模板,以便生成适当的 HTML 回应。
首先在Model文件夹下新建一个类:
在这里我就直接用的是音乐商店原有的名字:Album .cs;
代码为:
我们在控制器下定义一个Store控制器:
切记要在上面引用相应的Models
代码如下:
然后单击右键添加视图:
这样就会在views文件夹下多出Store/Index.cshtml文件
代码如下
我们将和h2标签的内容改为:this is @Model.Title,运行结果如下:
那么当添加一个列表对象的时候,怎么办呢??
我们用list来存放这些对象,然后传递到视图,代码如下:
修改视图代码:
因为我们不止是一个model对象,而是多个,所以将第一行修改为:@model IEnumerable<MvcMusicStore.Models.Album>。这告诉视图引擎模式是一个包含多个 Album对象的集合,我们使用 IEnumerable<Album> 而不是 List<Album>,因为这样更通用,可以允许我们在以后改变集合为任何实现 IEnumerable 接口的集合。
运行一下结果为:
以下是专业的描述,摘自音乐商店说明文档:
术语 Model 表示应用表现的数据,通常,模型对象用来表示数据库中保存在表中的数据,也不一定如此。控制器的 Action 方法通过返回的 ActionResule 可以传送模型对象给视图。这就允许控制器可以将所有生成回应需要的数据打包,然会传送给视图模板,以便生成适当的 HTML 回应。
首先在Model文件夹下新建一个类:
在这里我就直接用的是音乐商店原有的名字:Album .cs;
代码为:
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace music_store.Models { public class Album { public string Title { get; set; } public Genre Genre { get; set; } } }
我们在控制器下定义一个Store控制器:
切记要在上面引用相应的Models
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using music_store.Models; namespace music_store.Controllers { public class StoreController : Controller { // // GET: /Store/ public ActionResult Index(string id) { var album = new Album { Title = id }; return View(album); } } }
然后单击右键添加视图:
这样就会在views文件夹下多出Store/Index.cshtml文件
代码如下
@model music_store.Models.Album @*多了一行引用*@ @{ ViewBag.Title = "Index"; } <h2>Index</h2>
我们将和h2标签的内容改为:this is @Model.Title,运行结果如下:
那么当添加一个列表对象的时候,怎么办呢??
我们用list来存放这些对象,然后传递到视图,代码如下:
public ActionResult Index() { var album= new List<Album> { new Album{name = "DisCo"}, new Album{name ="Jazz" }, new Album{name = "Rock"} }; return View(album); }
修改视图代码:
@model IEnumerable<music_store.Models.Album> @{ ViewBag.Title = "Index"; } <h2>this is test</h2> <p> select from @Model.Count() album: @*得到相应的行数*@ </p>
<ul> @foreach(var album in Model) @*遍历这个集合*@ { <li>@album.name</li> @*拿到每个对象的name*@ } </ul>
因为我们不止是一个model对象,而是多个,所以将第一行修改为:@model IEnumerable<MvcMusicStore.Models.Album>。这告诉视图引擎模式是一个包含多个 Album对象的集合,我们使用 IEnumerable<Album> 而不是 List<Album>,因为这样更通用,可以允许我们在以后改变集合为任何实现 IEnumerable 接口的集合。
运行一下结果为:
相关文章推荐
- ASP.NET MVC ---模型在视图中的传递
- ASP.NET MVC从视图传递多个模型到Controller
- ASP.NET MVC从视图传递多个模型到Controller
- ASP.NET MVC从视图传递多个模型到Controller
- ASP.NET MVC传递Model到视图的多种方式总结(一)__通用方式的使用
- ASP.NET MVC从视图传递多个模型到Controller
- ASP.NET MVC从视图传递多个模型到Controller
- 在ASP.NET MVC 模型中 选择最好的方法将多个model(数据模型)传递到视图
- ASP.NET MVC从视图传递多个模型到Controller
- Asp.net MVC 3 Razor 视图引擎 中使用@输出的内容都会被自动进行HTML编码 问题的解决办法
- ASP.NET MVC 使用AderTemplate模板引擎进行视图显示
- ASP.NET中MVC从后台控制器传递数据到前台视图的方式
- ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
- 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
- [转]Asp.Net MVC使用HtmlHelper渲染,并传递FormCollection参数的陷阱 【转】
- Scott的ASP.net MVC框架系列文章之三: 视图数据的传递
- ASP.NET MVC之从控制器传递数据到视图四种方式
- MVC中使用EF(4):ASP.NET MVC 创建更复杂的数据模型
- Scott的ASP.net MVC框架系列文章之三: 视图数据的传递
- HTML5, jQuery Mobile 和 ASP.NET MVC 4——在模型和控制器之间使用ViewModel