asp.mvc展示model

1. ASP.Net MVC 3 Model 简介 通过一简单的事例一步一步的介绍
2. ASP.Net MVC 3 Model 的一些验证

MVC 中 Model 主要负责维持数据状态,将数据从数据存储器中检索并传递给控制器,客户端传送过来的数据通过处理后再传回数据存储系统中。是MVC中较为重要的一层。
这里为什么说是数据存储器而不是数据库,我们以前经常说的就是重数据库中增删改查数据等等什么的,但是 MVC 的Model 不单单只能在数据库中操作数据也能通过其他方式操作数据。学过java的ssh三大框架的人都应该知道hibernate 框架吧!java 中的hibernate框架就是ORM的典型应用!咱们.net 平台也有些访问数据库的框架比如说ling to sql  Entity Framework NHibernate 等。所以说呢不是操作数据库而是操作数据存储器。

下面用一个简单的事例演示一下
本实例用list模拟一些person类的对象然后再view 层中显示出来。

1. 首先先在Model层中新建一个Person 类。

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

此Person类简单了定义了几个属性。注意第一行的命名空间Mvc3App1.Models 一会在Controller 中会用到。
2. 新建一个Controller 在这我就不截图了因为前面有一篇专讲Contoller 的文章不了解Controller 的请您先看下Controller的文章 ASP.Net MVC 3 Controller 
   2.1 首先如果在Controller中用Model层中的实体类首先必须引入命名空间

using Mvc3App1.Models;

 2.2  在Index() 这个Action 方法中定义一个List 集合 然后给它初始化几个对象。

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

2.3 添加一个View

ok 到此为止,View - Controller - Model 都已经创建完毕,下面咱接着看View层的结构。

1 @model Mvc3App1.Models.Person
2
3 @{
4     ViewBag.Title = "Index";
5 }
6
7 <h2>Index</h2>

看第一行,就是将Action 返回的结果存到model中但是,咱返回的是一个List集合那怎么办呢?好办用集合接收不就完事了,再这提醒您一句如果您看不懂@符号是干什么使的,我建议您先看一下我前面讲 Razor 视图的两篇文章 ASP.NET MVC 3 Razor 视图引擎 基本语法   ASP.NET MVC 3 Razor 视图引擎 布局
好下面咱就先解决第一个问题怎么用集合接受

@model IEnumerable<Mvc3App1.Models.Person>

用IEnumerable接收就 ok 了,有人问它是什么东东,告诉您 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代 List ArrayList 等 就实现的该接口。

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

12 - 14 行 foreach 遍历输出
写着这么多了先看下运行结果吧!

数据返回到View层了,那么View层怎么将参数传给Controller 好下面咱再添加一个Detaile  用于显示详情的Action

 1 public class MTestController : Controller
 2     {
 3         //新建一个泛型集合然后给他初始化一些数据
 4         private List<Person> persons = new List<Person>
 5             {
 6                 new Person { IdCard = "001", Name = "张三", Age = 21, Sex = "男"},
 7                 new Person { IdCard = "002", Name = "李四", Age = 21, Sex = "男"},
 8                 new Person { IdCard = "003", Name = "王麻子", Age = 21, Sex = "男"},
 9                 new Person { IdCard = "004", Name = "赵六", Age = 21, Sex = "男"},
10             };
11         public ActionResult Index()
12         {
13             return View(persons);
14         }
15
16         public ActionResult Detaile(string id)
17         {
18             Person person = persons.Find(p=>p.IdCard == id);
19             return View(person);
20         }
21
22     }

为了数据共享将4-9行虚拟的数据提到方法外面去,Detaile方法接受一个id参数,为了不再修改路由就可以直接运行这里就用id代表IdCard。然后调用List集合中的find方法查询。
再看一下Detaile 的View 层是怎么写的吧!

@model Mvc3App1.Models.Person

@{
    ViewBag.Title = "Detaile";
}

<h2>详细信息</h2>
编号:@Model.IdCard 姓名:@Model.Name 性别:@Model.Sex 年龄:@Model.Age

很简单不再做额外的解释,好下一步改写Index 的View层代码
将foreach中的语句改为

<li>@[email protected](person.Name,"Detaile",new {id=person.IdCard})</li>

简单说就是给姓名文本加一个a标签 (超链接)但是这个标签和以前的有点不同,这就是MVC 为了简化代码,出的HTML helper  但是今天的主角不是它,我简单的说先上面这行语句就行了
Html.ActionLink 从英语单词上不难理解它就代表一个超链接,其中第一个参数是超链接的文本- 第二个参数的转向那个Action 及 Action 的名字,第三个是传的参数。

看下运行结果吧!

Index

Detaile

时间: 2024-12-17 01:18:44

asp.mvc展示model的相关文章

ASP.NET MVC中Model相关技术

在Model里的程序,由于“只能”跟数据与商业逻辑有关,因此Model专注于如何有效地提供数据访问机制.交易环境.数据格式.商业逻辑验证等工作. 一.使用Code First创建数据模型 数据库开发模式有数据库优先开发模式(Database First Development).模型优先开发模式(Model First Development)和程序代码优先开发模式(Code First Development)这三种.ASP.NET MVC的Model数据库开发模式为程序代码优先开发模式,使用

ASP.NET MVC传递Model到视图的多种方式总结

ASP.NET MVC传递Model到视图的多种方式总结 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData ViewModel Tuple 场景: 在视图页面,下拉框选择课程触发事件,分别显示老师课程表.学生上课表,如图: 相关的Model: 1 public class Course 2 { 3 public int Id { get; set; } 4 public string Name { get; set; } 5

ASP.NET MVC传递Model到视图的多种方式之通用方式的使用

ASP.NET MVC传递Model到视图的多种方式总结——通用方式的使用 有多种方式可以将数据传递到视图,如下所示: ViewData ViewBag PartialView TempData ViewModel Tuple 场景: 在视图页面,下拉框选择课程触发事件,分别显示老师课程表.学生上课表,如图: ? 相关的Model: 1 public class Course 2 { 3 public int Id { get; set; } 4 public string Name { get

MVC之Model元数据

Contronoller激活之后,ASP.NET MVC会根据当前请求上下文得到目标Action的名称,然后解析出对应的方法并执行之. 在整个Action方法的执行过程中,Model元数据的解析是一个非常重要的环节.ASP.NET MVC中的Model实际上View Model,表示最终绑定到View上的数据,而Model元数据描述了Model的数据结构,以及Model的每个数据成员的一些特性. 正是有了Model元数据的存在,才使模板化HTML的呈现机制成为可能.此外,Model元数据支撑了A

asp mvc 导出txt 文件泛型方法

asp mvc 导出txt 文件泛型方法分享: public static void ExportFile<T>(T obj) { StringBuilder str = new StringBuilder(); //列出obj 对象中的所有属性 System.Reflection.PropertyInfo[] properties = obj.GetType().GetProperties(); if (properties != null && properties.Len

ASP.NET MVC3 Model验证总结

原文:ASP.NET MVC3 Model验证总结 http://www.wyjexplorer.cn/Post/2012/8/3/model-validation-in-aspnet-mvc3 ASP.NET MVC3中的Model是自验证的,这是通过.NET4的System.ComponentModel.DataAnnotations命名空间完成的. 我们要做的只是给Model类的各属性加上对应的验证标记(Attributes)就可以让MVC3框架帮我们完成验证.我以MVC3项目模板自带的登

MetadataType的使用,MVC的Model层数据验证

//ActivityFlowContent是实体模型的model类 //ActivityFlowContentMetadata是自己写的model类 //这两个类属性相同可以形成映射关系,ActivityFlowContent中还可以加其他额外字段 [MetadataType(typeof(ActivityFlowContentMetadata))] public partial class ActivityFlowContent : IBaseEntity    {              

ASP.MVC 基于AuthorizeAttribute权限设计案例

ASP.MVC上实现权限控制的方法很多,比如使用AuthorizeAttribute这个特性 1.创建自定义特性用于权限验证 public class AuthorizeDiy : AuthorizeAttribute { /// <summary> /// 提供一个入口用于自定义授权检查 /// </summary> /// <param name="httpContext"></param> /// <returns>&l

asp.mvc获取checkbox、radio、select的值

记录一下在asp.mvc中,提交表单时后台获取checkbox.radio.select值的方法. 1.获取select的值 <select name="type"> <option value="Phone">手机</option> <option value="Pad">平板</option> <option value="Pc">电脑</opt