首先,我们在Model层中添加一个Person类。

namespace MVCTest.Models
{
    public class Person
    {
        public string IdCard { get; set; }
        public string Name { get; set; }
        public string Sex { get; set; }
        public int Age { get; set; }
    }
}

在Controller层的HomeController控制器添加对Model层的引用:using MVCTest.Models;

首先,在Action中,通过View(类实例名),可以将模型的实例传递到对应的视图中,如下面代码:

public ActionResult Index()
       {

List<Person> persons = new List<Person>
           {
               new Person{IdCard="001",Name="张三",Age=21,Sex="男"},
               new Person{IdCard="002",Name="李四",Age=22,Sex="男"},
               new Person{IdCard="003",Name="王五",Age=23,Sex="男"},
               new Person{IdCard="004",Name="刘六",Age=24,Sex="男"},
           };

           return View(persons);

}
这里我们向View层返回一个Person类的集合,那么在View层中应该如何来处理返回的数据呢?

在View中,我们需要知道返回来的数据类型是什么,这就需要使用到@model关键字了。

在View中,需要添加:@model+ 返回数据的类型。在本例中,需要添加的是:@model IEnumerable<MVCTest.Models.Person>,通过上面的语句我们知道了返回数据的类型,接着,我们可以通过Model属性处理返回来的值(在:@model 中,你关联的返回类型是什么,Model属性的类型就是什么),如下面代码:

<ul>
    <li style="list-style-type:none;font-weight:bold">编号-- 姓名</li>
    @foreach(Person person in Model)
    {
        <li>&nbsp;@person.IdCard -- @Html.ActionLink(person.Name,"Detaile",new {id=person.IdCard})</li>
    }
</ul>

由于需要使用到Person类,所以还需要添加其所在命名空间的引用:@using MVCTest.Models

完整的View层代码如下:

@model IEnumerable<MVCTest.Models.Person>
@using MVCTest.Models;

@{
    ViewBag.Title = "Index";
}

<h2>人员信息表</h2>
<ul>
    <li style="list-style-type:none;font-weight:bold">编号-- 姓名</li>
    @foreach(Person person in Model)
    {
        <li>&nbsp;@person.IdCard -- @person.Name</li>
    }
</ul>

至此,我们已经了解了一个Model对象如何从Controller传到View,而View是如何处理返回的数据的。现在的问题是:我们可以将一个Model对象从View传给Controller么?可以的话应该怎么操作?而在网络传输的时候,需要对传回来的数据进行规范性和合格性的验证,这些验证时在哪里完成的?又是如何完成的?这些问题将在下一篇文章进行解答。

Controller将Model数据传给View层,View层应该如何处理?的更多相关文章

  1. View Controller Programming Guide for iOS---(四)---Creating Custom Content View Controllers

    Creating Custom Content View Controllers 创建自定义内容视图控制器 Custom content view controllers are the heart ...

  2. Java Web中的mapper,service,controller,model

    Java Web中的mapper,service,controller,model作用分别是:java web中mapper是对象持久化映射层,一般会继承ibatis或者mybatisservive是 ...

  3. IE8下导入EXCEL数据传到客户端以附件下载

    IE8下导入EXCEL数据传到客户端以附件下载方式出现,而不显示数据,解决方法:以text/html格式返回. HttpResponseMessage message = new HttpRespon ...

  4. 将Controller抛出的异常转到特定View

    <!-- 将Controller抛出的异常转到特定View --> <bean class="org.springframework.web.servlet.handler ...

  5. 后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案

    后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况.例如:201511200001725439这样一个Long类型的整数,传给前端后会变成201511200001725440. 解决方法: ...

  6. Go语言之高级篇beego框架之controller调用model

    一.controller调用model 开发规范,就该把对数据库的操作写在model文件夹中. 示例: views/main.go package main import ( _ "web/ ...

  7. 怎样把vector和string数据传给旧的C API

     通常情况下.旧的C API使用数组合char*指针来进行数据交换而不是vector或string对象. 这种API还将存在非常长的一段时间,假设我们想有效地使用STL.我们就必须与它们和平共处. ...

  8. struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的?

    struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的? 解答: 1)可以直接通过与表单元素相同名称的数据成员(需要存在符合命名规范set和get ...

  9. 《条目十六》如何将vector和string的数据传给遗留的API

    <条目十六>如何将vector和string的数据传给遗留的API 优秀的代码是可以延续的,所以并非所有的代码都是重构的,而且有时候重构会对整个系统影响较大,投入巨大,得不偿失.然而,也不 ...

随机推荐

  1. 七、context command

    context command是用来新建自己的工具,可以调用OPENGL,获取鼠标操作函数,在view窗口画自己想画的东西.(我是这麽理解的,可以以后再确定一下) 下面是一个context comma ...

  2. google快捷键

          使用快捷键的好处不言自明,如果能过直接访问google自然有对应的帮助文档以供参考,不过为了方便起见,还是将自己觉得有用的信息收藏到自己访问无障碍的地方吧! 一:以下快捷键适用于Windo ...

  3. 【转】WPF 窗体淡入淡出动画

    第一种 <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded" > <BeginSto ...

  4. ComponentCount 与 ControlCount 区别

       ShowMessage(panel.ComponentCount.ToString);  ShowMessage(panel.ControlCount.ToString);componetcou ...

  5. 易语言软件加VMProtect壳的正确方法

    VMP是一款很强大的加密壳,代码虚拟化技术可以很好的保护程序不被恶意修改破J但是很多人不知道怎么给自己的程序加壳,今天给大家晋级下加壳的正确方法 相信很多新手都以为只要把软件直接拖到VMP里重新编译一 ...

  6. java与微信企业号交互

    微信企业号接收消息(使用SpringMVC): http://blog.csdn.net/omsvip/article/details/39480577 微信企业号api: http://qydev. ...

  7. ORACLE object_id和data_object_id

    object_id和data_object_id 都是对象的唯一标识. object_id是对象的逻辑标识 data_object_id是对象的物理标识 对于没有物理存储的对象,data_object ...

  8. 分布式Apache ZooKeeper-3.4.6集群安装

    fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3900253.html Apache ZooKeeper是一个为分布式应用所设计的开源协 ...

  9. (十一) 一起学 Unix 环境高级编程 (APUE) 之 高级 IO

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  10. shell scripts

    本文涉及的命令:test.[].shift.if.case.for.while.until.function.sh. 撰写 shell script 的良好习惯 在每个 script 的文件头处记录好 ...