【ASP.NET】@Model类型的使用详解

有时需要在ASP.NET MVC4的视图的@model中使用多个类型的实例,.NET Framework 4.0版本引入的System.Tuple类可以轻松满足这个需求。

假设Person和Product是两个类型,如下是控制器代码。

[csharp] view plain copy

  1. using System;
  2. using System.Web.Mvc;
  3. namespace Razor.Controllers
  4. {
  5. public class HomeController : Controller
  6. {
  7. Razor.Models.Product myProduct = new Models.Product { ProductID = 1, Name = "Book"};
  8. Razor.Models.Person myPerson = new Models.Person { PersonID = "1", Name = "Jack" };
  9. public ActionResult Index()
  10. {
  11. return View(Tuple.Create(myProduct,myPerson));  // 返回一个Tuple对象,Item1代表Product、Item2代表Person
  12. }
  13. }
  14. }

如下是视图Index.cshtml的代码

[html] view plain copy

  1. @model Tuple<Razor.Models.Product, Razor.Models.Person>
  2. @{
  3. Layout = null;
  4. }
  5. <!DOCTYPE html>
  6. <html>
  7. <head>
  8. <meta name="viewport" content="width=device-width" />
  9. <title>Index</title>
  10. </head>
  11. <body>
  12. <div>
  13. @Model.Item1.Name
  14. </div>
  15. </body>
  16. </html>

当然,还有许多其它的方法做到上述相同效果。但上述方法直接简明,容易理解和使用。

时间: 2024-10-12 03:28:05

【ASP.NET】@Model类型的使用详解的相关文章

YII model模型和登陆详解

模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. 数据对象的每个字段对应模型中的一个属性.每个属性有一个标签(label), 并且可以通过一系列规则进行验证. Yii 实现了两种类型的模型:表单模型和 Active Record.二者均继承于相同的基类 CModel. 表单模型是 CFormModel 的实例.表单模型用于保持从用户的输入获取的数据. 这些数据经常被获取,使用,然后丢弃.例如,在

ASP.NET2.0 ObjectDataSource的使用详解

ASP.NET2.0 ObjectDataSource的使用详解(1) http://mqingqing123.cnblogs.com/archive/2006/04/20/379710.htmlASP.NET2.0 ObjectDataSource的使用详解(2) http://mqingqing123.cnblogs.com/archive/2006/04/20/379720.htmlASP.NET2.0 ObjectDataSource的使用详解(3)http://mqingqing123

ftp用户类型、配置文件详解以及“425 Security:Bad IP connection”解决方式

一:ftp用户类型 1:匿名用户anonymous,实际登陆访问文件目录时,是使用本地系统用户ftp登陆,访问ftp的家目录即/var/ftp,默认此目录只有root才有写权限(ftp的安全机制),推荐在此目录下创建目录并赋予ftp写权限 2:本地系统用户,登陆时会直接访问此用户的家目录,为了安全起见在操作系统创建用户时添加"-d /bin/nologin",设置此用户为不可登陆操作系统 3:虚拟用户,使用mysql等数据库管理用户,需在配置文件上将用户映射到某一本地系统用户 二:ft

STL中map容器使用自定义key类型报错详解

引言 STL的map容器中,key的类型是不是随意的呢? 实践 编写测试代码 定义一个结构体来试试: struct a { char* pName; int m_a; }; map<a, int> mp; a a1; a1.m_a = 100; a1.pName = "a1"; a a2; a2.m_a = 200; a2.pName = "a2"; mp.insert(std::make_pair(a1, 1)); mp.insert(std::mak

ASP.NET中Web.Config配置文件详解与应用

1.首先是Web.Config配置文件详解的参数含义(具体内容都在以下代码中有注释-我从网上找到的) 1 <?xml version="1.0" encoding="utf-8"?> 2 3 <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual Studio 中 4 的“网站”->“Asp.Net 配置”选项. 5 6 设置和注释的完整列表在 machine.config.comm

React Native之属性类型检查机制详解 PropType 变成 prop-types

属性确认的作用 使用 React Native 创建的组件是可以复用的,所以我们开发的组件可能会给项目组其他同事使用.但别人可能对这个组件不熟悉,常常会忘记使用某些属性,或者某些属性传递的数据类型有误. 因此我们可以在开发 React Native 自定义组件时,可以通过属性确认来声明这个组件需要哪些属性.这样,如果在调用这个自定义组件时没有提供相应的属性,则会在手机与调试工具中弹出警告信息,告知开发者该组件需要哪些属性. React Native已经升级到0.51.0了,版本升级很快,但是对老

ASP.NET 常用内置对象详解-----Response

利用提供的内置对象,可以实现页面之间的数据传递及实现一些特定的功能,如:缓冲输出,页面重定向等等. Response :响应,反应 Request:请求 Server:服务器 Application:应用,申请,应用程序: Session:回话,会议 Cookie:饼干 一. Response:  作用: 将动态生成的信息嵌入到HTML文档中,然后发送到客户端: 缓冲输出数据: 重定向浏览器到另一个URL: 向浏览器输出Cookie文件. 其类名为httpResponse 常用方法: : Res

第37篇 Asp.Net源码解析(二)--详解HttpApplication

这篇文章花了点时间,差点成烂到电脑里面,写的过程中有好几次修改,最终的这个版本也不是很满意,东西说的不够细,还需要认真的去看下源码才能有所体会,先这样吧,后面有时间把细节慢慢的再修改.顺便对于开发的学习,个人是觉得源码的阅读是最快的提高方式,当然阅读不是走马观花,应该多次阅读. 上次说到获得HttpApplication对象的创建,创建完成后调用InitInternal方法,这个方法任务比较多,也比较长,这里就不贴全码了,一个一个过程的去说: 初始化HttpModule 对于HttpModule

基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解

概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈API使用过程中参数的传递方式. 各种参数传递方式的实现: ASP.NET Web API参数有两种传递方式,一种是请求时携带QueryString,对应API 开发中的FromUrlAttribute属性,也是参数传递默认属性,并且每个API可以含有多个此类型的参数,主要应对GET请求,但此种方式