当前位置: 首页 > 编程日记 > 正文

[转] ASP.NET MVC3 路由和多数据集的返回

1.ASP.NET MVC3 中的路由

同前边一样本篇并不会过多的介绍理论知识,我们在Global.asax.cs文件中可以看到如下代码:

routes.MapRoute("Default", // Route name"{controller}/{action}/{id}", // URL with parametersnew { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

下边我们模仿上边来完成一个我们将会用到的路由,如下:

routes.MapRoute(null, // 没必要指定路由名"{controller}/{action}/{id}", // URL with parametersnew { 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.ArticleCommentwhere a.ArticleID == idselect 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 中页面布局方法。

相关文章:

给Python代码加上酷炫进度条的几种姿势

作者 | 刘早起来源 | 早起Python&#xff08;ID: zaoqi-python&#xff09;大家好&#xff0c;在下载某些文件的时候你一定会不时盯着进度条&#xff0c;在写代码的时候使用进度条可以便捷的观察任务处理情况&#xff0c;除了使用print来打印之外&#xff0c;今天本文就介绍几种…

(转)mongodb分片

本文转载自&#xff1a;http://www.cnblogs.com/huangxincheng/archive/2012/03/07/2383284.html 在mongodb里面存在另一种集群&#xff0c;就是分片技术&#xff0c;跟sql server的表分区类似&#xff0c;我们知道当数据量达到T级别的时候&#xff0c;我们的磁盘&#xff0c;内…

深入浅出paxos

原文 https://rebootcat.com/2020/12/05/paxos/

Uber 前无人驾驶工程师告诉你,国内无人驾驶之路还要走多久?

受访者 | Graviti 创始人&CEO 崔运凯记者 | Aholiab&#xff0c;编辑 | Carol出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;经过数年的发展&#xff0c;现在的人们谈到“AI”已经不再像过去一般感到遥不可及。但 AI 在国内发挥的作用仍然只是冰山一角&#xff…

oracle服务

OracleOraDb11g_home1ClrAgent服务&#xff0c;在网上查找到了资料 http://download.oracle.com/docs/cd/B19306_01/win.102/b14306/install.htm Configuring Extproc Agent Using Windows Service As part of Oracle Database Extensions for .NET installation, a Windows se…

B00009 C语言分割字符串库函数strtok

切割字符串是常用的处理。 这里给出一个使用函数strtok切割字符串的例子。 使用C语言的库函数strtok来切割字符串的好处在于&#xff0c;可以指定任意字符作为分隔符来切割单词。使用该函数&#xff0c;切割字符串的分隔符可以同时指定多个&#xff0c;放在一个字符串数组中。 …

WEB打印大全

1、控制"纵打"、 横打”和“页面的边距。 &#xff08;1&#xff09;<script defer> function SetPrintSettings() { // -- advanced features factory.printing.SetMarginMeasure(2) // measure margins in inches factory.SetPageRange(false, 1, 3) // ne…

漫画 | 程序媛小姐姐带你一次了解什么是排序算法

来源 | 小齐本齐封图 | CSDN 付费下载自视觉中国插入排序借用《算法导论》里的例子&#xff0c;就是我们打牌的时候&#xff0c;每新拿一张牌都会把它按顺序插入&#xff0c;这&#xff0c;其实就是插入排序。齐姐声明&#xff1a;虽然我们用打牌的例子&#xff0c;但是可不能学…

POJ 1207 The 3n + 1 problem

题目链接&#xff1a;http://poj.org/problem?id1207 题目大意&#xff1a;给你一个数x&#xff0c;规定一个函数F(x)&#xff0c;如果x为1则F(x)1&#xff0c;否则如果x是偶数&#xff0c;F(x)F(x/2)&#xff0c;x为奇数F(x)F(3*x1)计算给定x到变换到1的步数。 注意点&#x…

PopupWindow响应返回键的问题

假设情景是这样的&#xff1a;在一个Activity中弹出一个PopupWindow&#xff0c;要求在按返回键时关闭该PopupWindow。 如果该PopupWindow是无焦点的&#xff08;默认情况&#xff09;&#xff0c;那么可以在Activity中响应返回键&#xff08;onBackPressed&#xff09;&#x…

Unix / Linux世界里的4-2-1

Unix / Linux世界里的4-2-1 在Unix / Linux世界里&#xff0c;4代表可读( r )&#xff0c;2代表可写入 ( w )&#xff0c;1代表可执行 ( x ) 如果拥有7 421 的权限&#xff0c;即代表这个人可以对档案完全控制。 以0777为例&#xff1a; 去掉0&#xff0c;第一个7代表着拥有者…

深度学习概述:NLP vs CNN

作者 | Manish Kuwar译者 | 苏本如&#xff0c;责编 | 郭芮头图 | CSDN 下载自视觉中国出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;以下为译文&#xff1a;当今&#xff0c;人工智能已经不仅仅是一个技术术语了。这项技术在过去十年的时间内几乎将其影响扩展到…

oracle 求A中不存在于B的记录

oracle 求A中不存在于B的记录 select * from a minus select * from b 是求A中不存在于B的记录select * from a union select * from b 是求A和B的DISTINCT的并集select * from a union all select * from b 是求A和B的冗余并集那么A和B的交集是什么函数来的?交集是 INTERSE…

正则表达式grep、egrep--already

第一式 grep是什么 #man grepgrep&#xff08;global search regular expression&#xff08;RE&#xff09;是一种强大的文本搜索工具&#xff0c;它能使用正则表达式搜索文本&#xff0c;并把匹配的行打印出来。UNIX的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令…

万字长文综述目标检测领域,你要的都在这里

来源 | AI专栏&#xff08;ID: pursue-Y-future&#xff09;目标检测是计算机视觉中的一个重要问题&#xff0c;近年来传统检测方法已难以满足人们对目标检测效果的要求&#xff0c;随着深度学习在图像分类任务上取得巨大进展&#xff0c;基于深度学习的目标检测算法逐渐成为主…

ASP.net随机数应用实例

家可能都用过Chinaren的校友录&#xff0c;不久前它的留言簿上加了一个防止灌水的方法&#xff0c;就是系统每次产生一个由随机的数字和字母组成的图片&#xff0c;每次留言必须正确地输入这些随机产生的字符&#xff0c;否则不能添加留言。这是一个很好的防止恶意攻击的方法&a…

PreferenceActivity是什么?

我们看到Android系统本身就大量用到了PreferenceActivity来对系统进行信息配置和管理&#xff0c;那么它是怎么保存数据的呢&#xff0c;如何创建PrefenceActivity的呢?创建Android项目&#xff0c;并添加一个pref.xml文件(先建一个xml名的Folder)。注意&#xff0c;这次选择的…

坑系列 --- 时间和空间的平衡

这是坑系列的最后一弹了&#xff0c;这篇文章非常长&#xff0c;希望你能看完&#xff0c;要是看完有很酣畅的感觉就最好了。这一篇的坑主要来说说架构中时间和空间的平衡吧&#xff0c;这里的时间指代比较广&#xff0c;可能是开发时间&#xff0c;但大部分指的是执行时间&…

C#中调用Windows API的要点

在.Net Framework SDK文档中&#xff0c;关于调用Windows API的指示比较零散&#xff0c;并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下&#xff0c;希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话&…

线上直播丨Hinton等6位图灵奖得主、百余位顶级学者邀你群聊AI

Geoffrey Hinton等6位图灵奖得主亲临&#xff0c;百余位顶级学者邀请你加入群聊「2020北京智源大会」&#xff0c;深入系统探讨「人工智能的下一个十年」。自2009年深度学习崛起以来&#xff0c;第三波人工智能浪潮席卷全球&#xff0c;推动了新一波技术革命。在这波澜壮阔的11…

ServerSocket

ServerScoket 这个类用于与 Socket 进行通信。 在实例化ServerSocket 的时候&#xff0c;服务器相当于已经开始了&#xff0c;但是还需要通过socket来accept &#xff08;socket serverSocket.accept()&#xff09;以使服务器选择性与某一Client进行连接。如果有指定了允许连接…

NDK开发 - C/C++ 访问 Java 变量和方法

上一篇有提到 JNI 访问引用数组&#xff0c;涉及了 C/C 访问 Java 实例的方法和变量。虽然在之前的开发中&#xff0c;并没有用到 C/C 范围 Java 层数据&#xff0c;但是这部分内容还是很有用的。传送门&#xff1a;NDK开发 - C/C 访问 Java 变量和方法 C/C 访问 Java 层的方法…

在C#中应用哈希表(Hashtable)

一,哈希表(Hashtable)简述 在.NET Framework中&#xff0c;Hashtable是System.Collections命名空间提供的一个容器&#xff0c;用于处理和表现类似key/value的键值对&#xff0c;其中key通常可用来快速查找&#xff0c;同时key是区分大小写&#xff1b;value用于存储对应于key的…

俄罗斯自研Elbrus CPU参数曝光,CEO年近九旬仍未退休

导语&#xff1a;俄罗斯自研 CPU 参数最近曝光&#xff0c;虽然比起主流产品仍存在较大差距&#xff0c;但是这也是俄罗斯在自研道路上的一大进展。虽说自研 CPU 并非易事&#xff0c;但为了避免被美国牵制&#xff0c;很多国家都在这方面投入了巨大的人力与资金。战斗民族俄罗…

停止Password Manager Agent服务导致应用程序启动缓慢

在一个实施环境中&#xff0c;部署了Password Manager用来实现单点登录功能&#xff0c;但是由于Password Manager的提示基本都是以英文为主&#xff0c;而且配置也比较麻烦&#xff0c;普通用户看见会比较影响用户体验&#xff0c;所以用户决定暂时关闭Password Manager功能&a…

web 前端常用组件【06】Upload 控件

因为有万恶的IE存在&#xff0c;所以当Web项目初始化并进入开发阶段时。 如果是项目经理&#xff0c;需要知道客户将会用什么浏览器来访问系统。 明确知道限定浏览器的情况下&#xff0c;你才能从容的让手下的封装必要的前端组件。 本篇文章试图从常见的上传方式和组件进行分析…

性能超越最新序列推荐模型,华为诺亚方舟提出记忆增强的图神经网络

作者 | Chen Ma, Liheng Ma等译者 | Rachel出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;用户-商品交互的时间顺序可以揭示出推荐系统中用户行为随时间演进的序列性特征。用户与之交互的商品可能受到用户曾经接触的商品的影响。但是&#xff0c;用户和商…

ASP.net 中的页面继承实现和通用页面的工厂模式的实现

最近用.Net做web项目的时候遇到了一些问题&#xff0c;就是很多的页面的处理一样的&#xff0c;不一样的就是我们写的存储过程不同&#xff0c;为了考虑代码的重复利用和可维护性和可 扩展性&#xff0c;于是写了一个对于单据页面的工厂模式&#xff0c;采用界面的继承技术&…

5502的时钟组

5502有四个时钟组&#xff0c;分别为&#xff1a; C55x Subsystem Clock GroupFast Peripherals Clock GroupSlow Peripherals Clock GroupExternal Memory Interface Clock Group1、C55x Subsystem Clock Group该时钟组包括C55X CPU core、内存&#xff08;DARAM和ROM&#xf…

遇到的浏览器兼容问题及应对方法

前言&#xff1a; 上周天的时候有个学长找我帮忙做三张页面&#xff0c;因为没有数据交换之类的&#xff0c;只是单纯的前端页面&#xff0c;想着好久没做东西&#xff0c; 看书都看烦了&#xff0c;所以就接了也当是练手。之前因为没有系统的看书&#xff0c;所以其实很多问题…