博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用ViewModel来实现多个Model传送至视图
阅读量:5052 次
发布时间:2019-06-12

本文共 1076 字,大约阅读时间需要 3 分钟。

在开发ASP.NET MVC时,我们会遇上这样的情形,需要一次性传送多个Model从控制器Controller至视图View。

 实现很简单,只是创建一个集合类即可。

Ok,下面先在数据库准备一些数据,如:

CREATE TABLE [dbo].[TableA](    [A] NVARCHAR(30) NULL,    [B] NVARCHAR(30) NULL,    [C] NVARCHAR(30) NULL)GOINSERT INTO [dbo].[TableA] ([A],[B],[C])VALUES ('a1','b1','c1'),('a2','b2','c2'),       ('a3','b3','c3'),('a4','b4','c4'),       ('a5','b5','c5')GOCREATE PROCEDURE [dbo].[usp_TableA_GetAll]ASSELECT [A],[B],[C] FROM [dbo].[TableA]GO
Source Code

 

另一份数据:

 

CREATE TABLE [dbo].[TableB](    [X] DECIMAL(18,8) NULL,    [Y] DECIMAL(18,8) NULL,    [Z] DECIMAL(18,8) NULL)GOINSERT INTO [dbo].[TableB] ([X],[Y],[Z]) VALUES (0.2,0.3,0.4),(1.2,2.3,3.4),(4.2,5.3,6.4)GOCREATE PROCEDURE [dbo].[usp_TableB_GetAll]ASSELECT [X],[Y],[Z] FROM [dbo].[TableB]GO
Source Code

 

此时回至ASP.NET MVC项目中,创建两个model:

TableA model:

 

TableB model:

 

现在你需还要创建两个实体,去获取数据库的数据:

TableAEntity:

 

TableBEntity:

 

一切就绪,转入正题,实现ViewModel类:

 

在控制器中:

 

下面是视图实现:

 

上图#2代码如下:

 

程序运行结果:

 

本篇关键部分,是创建另外一个ViewModel类,在类中添加相关model有属性。下面是重温一下:

这种方法,就等于写死了,如果有另外的model添加或是删除,得来去修改这个ViewModel类。

转载于:https://www.cnblogs.com/insus/p/5594134.html

你可能感兴趣的文章
JavaScript基础(四)关于对象及JSON
查看>>
关于js sort排序方法
查看>>
JAVA面试常见问题之Redis篇
查看>>
javascript:二叉搜索树 实现
查看>>
网络爬虫Heritrix源码分析(一) 包介绍
查看>>
[svc]线上Iptables重启报错
查看>>
请尽可能详尽的解释ajax的工作原理
查看>>
yii2框架dropDownList的下拉菜单用法介绍
查看>>
c#截取两个指定字符串中间的字符串
查看>>
UDP基础-1
查看>>
康托展开了解一下
查看>>
通讯聊天工具(pingin)
查看>>
odoo10 高级视图
查看>>
IE 专有的事件驱动方法 Named Script
查看>>
hibernateTemplate.find或hibernateTemplate.save()执行操作没有反应,但是有sql语句
查看>>
SQL Server 查询性能优化——索引与SARG(一)
查看>>
到底还是中国人,这官话都一套一套的
查看>>
Java 排序(快排,归并)
查看>>
解析html
查看>>
linux日常管理-系统进程查看工具-ps
查看>>