ASP.NET MVC3 实例(四) 路由和多数据集的返回
来源:互联网 发布:苹果cms视频收藏 编辑:程序博客网 时间:2024/05/18 11:26
在上一篇中介绍了在 ASP.NET MVC3 中使用 Controller 来进行数据的查询并将它返回给 View,View 中使用 ASP.NET MVC3 新特征 Razor 语法进行了数据的显示。本篇将大体介绍下 ASP.NET MVC3 中的路由和 Razor 多数据集返回。
1.ASP.NET MVC3 中的路由
同前边一样本篇并不会过多的介绍理论知识,我们在Global.asax.cs文件中可以看到如下代码:
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults);
下边我们模仿上边来完成一个我们将会用到的路由,如下:
routes.MapRoute( null, // 没必要指定路由名 "{controller}/{action}/{id}", // URL with parameters new { controller = "Archive", action = "Post", id = UrlParameter.Optional } // Parameter defaults);
上边两者定义的 Url 分别如下:
- /
- /archive/post/1
关于路由原理、路由顺序、各种重载的写法这里不详细介绍,给出第2个主要为了下边工作的进行。
2.ASP.NET MVC3 中多数据集的返回
如上边提到的,在前一篇中,我们已经实现了在Home页中读取并显示数据,接下来,当用户点击阅读的时候,应该跳转到详细页来阅读详细内容,我们按先前的方法添加名为 Archive 的控制器,并为其创建名为 "Post" 的视图。
接下来,我们需要在 Archive 控制器中完成数据的读取,因为我们在显示文章详情的同时要显示用户的评论,这样 Article 对象和 ArticleComment 对象为两个实体。本篇将重新创建一个类,用来返回,如下:
public class ACModel{ //C# 3自动属性 public Article Article { get; set; } public IEnumerable Comment { get; set; }}
接下来,我们分别获取我们需要的数据,并返回,如下:
//根据文章ID查询,返回结果public ActionResult Post(int id){ //单一的Article实体 var article = android.Article.Single(a => a.ID == id); // 使用Linq查询, comments是IEnumerable集 var comments = from a in android.ArticleComment where a.ArticleID == id select a; ACModel model = new ACModel { Article = article, Comment = comments }; return View(model);}
可能有很多直接学习 ASP.NET MVC 的朋友对 Linq 语法并不是很了解,如果你不是很了解的话可以看看基本 LINQ 查询操作 (C#),因为我们后边使用到的分页等会常用到。
可见,这样就解决了在 ASP.NET MVC3 中一个 View 中返回多个数据集的问题,我们显示数据时可根据 ACModel 对象的属性来完成。当然,也可以通过使用视图等,并建立对应的类来解决此类问题。接下来,就要在 View 中来进行显示了:
//Model 是ACModel对象的引用,前边已经提过@model Android.Controllers.ArchiveController.ACModel@{ var article = Model.Article; var comment = Model.Comment; }
显示文章标题为:@article.Title,显示评论时,因为comment为IEnumerable集,显示时进行遍历,如下:
@foreach (var c in comment){ <p>@c.Comment</p>}
因为这里进行数据显示时,同上篇类似,所以在这里就简单的描述下。希望本篇在 ASP.NET 中返回多个数据集能给你带来一些帮助,下篇我们简单看看 ASP.NET MVC3 中页面布局方法。
- ASP.NET MVC3 实例(四) 路由和多数据集的返回
- ASP.NET MVC3 实例(四) 路由和多数据集的返回
- ASP.NET MVC3 实例(四) 路由和多数据集的返回
- ASP.NET MVC3 实例(四) 路由和多数据集的返回
- ASP.NET MVC3 路由系统
- ASP.NET MVC3 路由系统
- ASP.NET MVC3 实例(一) MVC3 介绍和项目的创建
- ASP.NET MVC3 实例(一) MVC3 介绍和项目的创建
- ASP.NET MVC3 实例(一) MVC3 介绍和项目的创建
- ASP.NET MVC3 学习心得------路由机制
- ASP.NET MVC3中的路由系统
- ASP.NET MVC 路由(四)
- ASP.NET MVC3中的路由系统(Routes)
- ASP.NET MVC3中的路由系统(Routes)
- ASP.NET MVC3中的路由系统(Routes)
- ASP.NET MVC3中的多路由系统(Routes)
- ASP.NET MVC3学习心得-----视图和模型
- ASP.NET MVC3--表单和HTML辅助
- 6410之点灯驱动
- boost::ASIO的异步方式
- 发工资咯:) 2021
- Linux ssh scp自动执行
- SegY地震体数据可视化分析工具 开发笔记 3
- ASP.NET MVC3 实例(四) 路由和多数据集的返回
- 【强烈推荐】<<国土档案管理信息系统>>产品使用说明书系列目录V3.0【附下载地址】
- 在GitHub上分享和展示你的代码
- C++生成并调用dll文件
- ASP.NET MVC3 实例(五) Razor 布局简介
- 黑马程序员 自学日记(一) java基础 一
- 二项堆
- 设计模式(八)---桥接模式
- 计算机硬件的组成