MVC中使用Tuple完成匿名类数据存储
使用MVC时,会遇到从Controller传递到View的数据只是某几个表中的几个字段的数据,有很多人都会想到能否把这几个字段组成一个匿名类传到View,但是这样好像行不通,所以有些时候我们会针对这几个字段来创建一个Model,方便数据的正确传递,但是这会使得Model越来越多,很多人都不喜欢这么做,那有没有其他方法解决这个问题呢?
这里给大家介绍一种方法:
使用System.Tuple来实现,该类是一个静态类,提供了一些用于创建元组对象的静态方法,这个就不多了,大家可以自己去查看下元数据就知道了,很简单的。
接下了看下使用方法:
Controller代码:
public ActionResult TupleTest()
{
LinqDBEntities db = new LinqDBEntities();
dynamic data = db.StuInfo.ToList().Select(s => Tuple.Create(s.StuNum, s.StuName, s.StuAge,s.StuSex, s.ClassID));
ViewData["data"] = data;
return View();
}
在Controller中把要传递的数据通过Tuple.Create封装数据
View代码:
<%
dynamic dd = ViewData["data"];
foreach (var item in dd)
{
Response.Write(item.Item1+"-"+item.Item2+"-"+item.Item3+"-"+item.Item4+"-"+item.Item5+"<br>");
}
%>
在View中可以拿到封装的数据。
注意:Tuple.Create最多支持8个参数,但是有时候我们的字段不止8个,我们可以使用Tuple嵌套,例如:
Tuple.Create(s.StuNum, s.StuName, s.StuAge,s.StuSex, s.ClassID,s.StuNum,Tuple.Create(s.StuName,s.StuAge))
但是嵌套以后在,代码的清晰度就会降低,所以建议大家如果字段过多可以考虑创建专门的Model类
MVC中使用Tuple完成匿名类数据存储的更多相关文章
- .net下MVC中使用Tuple分页查询数据
主要是在DAL层写查询分页的代码. 例如DAL层上代码: public Tuple<List<WxBindDto>, int> GetMbersInfo(int start, ...
- 使用ExposedObject对Asp.net MVC中匿名类型的JsonResult做单元测试
返回JsonResult是MVC中的常见返回值类型,而且简单方便的方式是结合匿名类型一起使用. 比如: public ActionResult PreviewEmail() { …… return J ...
- 如何在 ASP.NET MVC 中集成 AngularJS(2)
在如何在 ASP.NET MVC 中集成 AngularJS(1)中,我们介绍了 ASP.NET MVC 捆绑和压缩.应用程序版本自动刷新和工程构建等内容. 下面介绍如何在 ASP.NET MVC 中 ...
- MVC中的成员资格,授权,安全性
使用 Authorize 特性登录 Authorize 是 ASP.NET MVC 自带的默认授权过滤器, 可用来限制用户对操作方法的访问. 保护控制器操作 Authorize 特性在表单身份验证和 ...
- (转)Asp.Net MVC中身份认证和授权
MVC自带的ActionFilter 在Asp.Net WebForm的中要做到身份认证微软为我们提供了三种方式,其中最常用的就是我们的Form认证,需要配置相应的信息.例如下面的配置信息: < ...
- ASP.NET MVC中Area的另一种用法
ASP.NET MVC中Area的另一种用法 [摘要]本文只是为一行代码而分享 context.MapRoute("API", "api/{controller}/{ac ...
- Asp.net mvc 中的路由
在 Asp.net mvc 中,来自客户端的请求总是针对某个 Controller 中的 Action 方法,因此,必须采用某种机制从请求的 URl 中解析出对应的 Controller 和 Acti ...
- .NET MVC中的数据验证
一 概述 关于数据验证和数据注解,是任何软件系统不可小觑的必要模块,主要作用是为了保证数据安全性.防止漏洞注入和网络攻击.从数据验证的验证方式来说,我们一般分为客户端验证和服务端验证(或者两种方式相 ...
- ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现
在"ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现"中,在控制台应用程序中实现了属性值的笛卡尔乘积.本篇在界面中实现.需要实现的大致如下: 在界面 ...
随机推荐
- MSMQ消息队列安装
一.Windows 7安装.管理消息队列1.安装消息队列 执行用户必须要有本地 Administrators 组中的成员身份,或等效身份. 具体步骤: 开始—>控制面板—>程 ...
- 信息安全系统设计基础实验四:外设驱动程序设计 20135211李行之&20135216刘蔚然
北京电子科技学院(BESTI) 实 验 报 告 封面 课程:信息安全系统设计基础 班级:1352 ...
- Opencv step by step - 配置文件
有时候,我们需要用配置文件存储一些图像或者视频的信息. 先来一个简单的例子: #include <cv.h> #include <highgui.h> int main(int ...
- JS闭包文章--(翻译)Callbacks in Loops
原文地址:http://tobyho.com/2011/11/02/callbacks-in-loops/ 某些时候,你需要在循环里创建一个回调函数.我们来试试给页面里每个链接增加点击事件. var ...
- express的session函数
key:这个表示session返回来的cookie的键值, 我们整理一下哈: 这个是我们没有清缓存然后刷新了一下哈,对比的结果,发现session保存的数据中,只是expires这个改变了 { &qu ...
- ASP.NET服务器控件使用之MultiView和View
MultiView 控件是一组 View 控件的容器.使用它可定义一组 View 控件,其中每个 View 控件都包含子控件. 用 ActiveViewIndex 属性或SetActiveView 方 ...
- 将Image转化为BufferImage
public class BufferedImageBuilder { private static final int DEFAULT_IMAGE_TYPE = BufferedImage.TYPE ...
- 20步打造最安全的NGINX WEB服务器
Nginx 是一个轻量级的,高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器.它运行在UNIX,GNU /linux,BSD 各种版本,Mac OS X,Solaris和Wind ...
- Cas_个人理解
分为三个部分: 1.Cas服务器(用于验证用户是否正确) 1.用户信息存在服务端,其它客户端应用程序修改用户信息后需要同步到服务端 2.用户信息一般存储在服务端的数据 ...
- Node_JS
//http://www.nodebeginner.org/index-zh-cn.html#how-our-server-handles-requests 按照这个页面的例子写的,留作笔记//ind ...