31-View如何从Action取得数据
从Action取得数据,在ASP.NET MVC可区分成两种方式,一种是“使用弱类型取得数据”,另一种则是“使用强类型取得数据”,两者的差别在于View页面最上方声明的方式。
如果View页面使用弱类型接收来自Controller的数据,在View页面里完全不需要有任何声明,数据可以从ViewData、ViewBag或TempData取得,在页面中也可以通过@Model属性,取得从Action传来的ViewData.Model数据模型,但@Model数据模型的类型将会是object,所以算是弱类型的传值方式。
如果View页面使用强类型方式接收来自Controller的数据,那么,必须在View页面的第一行使用@model关键字引入一个View页面专用的数据模型类型参考,如下范例。
@model MvcApplication1.Models.LoginModel <hgroup class="title">
<h1>@ViewBag.Title.</h1>
</hgroup>
使用这种方式有助于提升View的开发效率,因为可以使用Visual Studio 2012的Intellisense提示功能。
1.使用弱类型模型取得数据
~~~练习1~~~
请使用弱类型模型的方式,将用户姓名“张三”,从~/Home/Index动作传递到Index视图。
~~~练习2~~~
已知模型类商品Product,代码如下。
public class Product
{
public int Id{get;set;}
public string Name{get;set;}
public string Category{get;set;}
public int Price{get;set;}
public int StockNum{get;set;}
}
请使用弱类型模型的方式,将商品集合从~/Home/Index动作传递到Index视图。
在使用@Model时必须先转换类型,才能享受Intellisense带来的便利,如下所示。
var data=(IEnumerable<Guestbook>)Model;
2.使用强类型模型取得数据
~~~练习3~~~
请将练习2的例子改为强类型传递数据。
31-View如何从Action取得数据的更多相关文章
- View与Control间的数据交互
		View与Control间的数据交互 1.ViewBag.Name ="Name1" 2.ViewData["VD"] = "view data&qu ... 
- C# -- 等待异步操作执行完成的方式  C# -- 使用委托 delegate 执行异步操作  JavaScript -- 原型:prototype的使用  DBHelper类连接数据库  MVC View中获取action、controller、area名称、参数
		C# -- 等待异步操作执行完成的方式 C# -- 等待异步操作执行完成的方式 1. 等待异步操作的完成,代码实现: class Program { static void Main(string[] ... 
- View可以设置tag携带数据
		View可以设置tag携带数据. 例子 初始化:ImageView iv_brand2 设置:iv_brand2.setTag(strB ... 
- Struts2(四.注册时检查用户名是否存在及Action获取数据的三种方式)
		一.功能 1.用户注册页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ... 
- Html.BeginForm  与Section、Partial View 和 Child Action
		该方法用于构建一个From表单的开始,他的构造方法为: Html.BeginForm("ActionName","ControllerName",FormMet ... 
- valuestack,stackContext,ActionContext.之间的关系以及action的数据在页面中取得的方法
		转自:http://blog.csdn.net/quechao123/article/details/4406148 1.三者之间的关系如下图所示: 2.action的数据在页面中取得的方法 在st ... 
- 【MVC架构】——怎样利用Json在View和Controller之间传递数据
		在MVC架构中,尽管非常多东西和三层非常相似,可是也有非常大的差别.就比方传递数据.在三层架构中,传递数据就仅仅要一层返回,另外一层用同样类型的变量来接收即可了.在MVC中,事实上原理是一样的,Con ... 
- view如何从action中取得数据和 Html辅助方法
		方式:1使用弱类型取,2,使用强类型,两者的差别在于view页面最上方声明的方式 如果使用弱类型接受来自控制器的数据,在view页面里完全不需要有任何的生命,数据可以从ViewData,ViewB ... 
- 【ASP.NET MVC】View与Controller之间传递数据
		1 概述 本篇文章主要从操作上简要分析Controller<=>View之间相互传值,关于页面之间传值,如果感兴趣,可参考我另外一篇文章ASP.NET 页面之间传值的几种方式 . Co ... 
随机推荐
- Spring中MultipartHttpServletRequest实现文件上传
			Spring中MultipartHttpServletRequest实现文件上传 转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传 用户必须能 ... 
- BZOJ 2661 连连看(费用流)
			题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2661 题意:给出一个区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y) ... 
- 动态加载JS
			<script> Date.prototype.format = function(format) { var o = { , //month "d+" : this. ... 
- Cheatsheet: 2013 08.01 ~ 08.13
			Mobile Objective C Blocks: Summary, Syntax & Best Practices Android SDK: Create an Arithmetic Ga ... 
- MyBatis 多表联合查询及优化 以及自定义返回结果集
			下面就来说一下 mybatis 是通过什么来实现多表联合查询的.首先看一下表关系,如图: 这 里,我已经搭好了开发的环境,用到的是 SpringMVC + Spring + MyBatis,当然,为了 ... 
- JBOSS批量扫描
			exploit-db提供出了EXP,如下: /* * JBoss JMXInvokerServlet Remote Command Execution * JMXInvoker.java v0.3 - ... 
- QT 加载c语言编译的动态库
			QLibrary lib("./libprint.so");//库的路径if(lib.load()){ typedef void(*AddFunction)(char *st ... 
- Maven开发基础总结(Maven自启动,Maven打war包,Maven热部署)
			学习内容: 1.不依赖外部Tomcat,自己启动方式部署 2.Maven打war包,远程部署到centOS 3.Maven热部署(不关闭Tomcat部署应用) 做maven开发前提: 1.编码UT ... 
- windows下的Git简单入手
			现在再搞golang,用go get github.com/xxx 命令使需要git.提交新项目到github.com也要git,老东西了,呵呵现在也要学习一下. 下载windows版的git. ·准 ... 
- 【T-SQL系列】新的排序函数
			如:ROW_NUMBER.RANK.DENSE_RANK三个分析函数都是按照col1分组内从1开始排序 ROW_NUMBER() 是没有重复值的排序(即使两天记录相等也是不重复的),可以利用它来实现分 ... 
