创建一个基本mvc项目

1.向Models目录下添加一个类文件MyModel.cs文件,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace MvcDynamicTest.Models
{
public class MyModel
{
public string TestString { get; set; }
}
}

2.添加Home控制器,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcDynamicTest.Models;
using System.Dynamic; namespace MvcDynamicTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
return View(new MyModel()
{
TestString = "This is a test string"
}
);
}
public ActionResult UsingExpando()
{
dynamic vm = new ExpandoObject();
vm.Name = "张三";
vm.Sex = true;
vm.Age = ;
vm.Math = 58.45;
return View(vm);
} }
}

3.增加Index Action对应的视图文件Index.cshtml,代码如下:

@{
ViewBag.Title = "Index";
} <h2>@Model.TestString</h2>

4.增加UsingExpando Action对应的视图文件UsingExpando.cshtml,代码如下:

@{
ViewBag.Title = "UsingExpando";
}
<h2>第1种方法输出:</h2><hr />
<p>@Model.Name<br />
@Model.Sex<br />
@Model.Age<br />
@Model.Math</p>
<br />
<h2>第2种方法输出:</h2><hr /><p>
@foreach (var fieldItem in (IDictionary<String, Object>)Model)
{
  @fieldItem.Key<span>:</span>@fieldItem.Value<br />
}
</p>
<br />
<h2>第3种方法输出:</h2><hr /><p>
@foreach (var f in Model)
{
   @f.Key<span>:</span>@f.Value<br />
}</p>
<br />
<h2>第4种方法输出:</h2><hr /><p>
@foreach (var f in Model)
{
   @f<br />
}</p>

5.最终效果图:


参考博客:

https://www.cnblogs.com/xuejianxiyang/p/4964739.html

在Mvc中,ExpandoObjec类的使用的更多相关文章

  1. Spring MVC中一般类使用service

    在Spring MVC中,Controller中使用service只需使用注解@Resource就行,但是一般类(即不使用@Controller注解的类)要用到service时,可用如下方法: 1.S ...

  2. asp.net mvc中匿名类dynamic

    dynamic info = new { name="aa", sex=“男”, age= }; //返回Model为info在前台中model.name报错,因为匿名类型默认访问 ...

  3. MVC中modelstate的使用

    MVC中ModelState类需要引用 System.Web.Mvc命名空间,在 System.Web.Mvc.dll 中. 属性 Errors 返回一个 ModelErrorCollection 对 ...

  4. 第四节:MVC中AOP思想的体现(四种过滤器)并结合项目案例说明过滤器的实际用法

    一. 简介 MVC中的过滤器可以说是MVC框架中的一种灵魂所在,它是MVC框架中AOP思想的具体体现,所以它以面向切面的形式无侵入式的作用于代码的业务逻辑,与业务逻辑代码分离,一经推出,广受开发者的喜 ...

  5. MVC中关于Membership类跟数据库的问题

    Membership它们用的是ASPNETDB这个数据库,但我们可以使用我们自定义的数据库,然而除非我们自定义的数据库有着跟这个ASPNETDB一样的模式,否则ASP.NET提供的默认的SqlMemb ...

  6. MVC中使用HTML Helper类扩展HTML控件

    文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件 ...

  7. MVC Controller 基类中的Request

    今天在测试自己MVC程序的时候发现之前写代码的一个BUG,需求是每个页面要获取当前URL链接中包含的城市ID,我把获取url的方法写到了Controller的基类BaseController(Base ...

  8. Spring MVC中一般 普通类调用service

    在Spring MVC中,Controller中使用service只需使用注解@Resource就行,但是一般类(即不使用@Controller注解的类)要用到service时,可用如下方法: 1.S ...

  9. mvc中动态给一个Model类的属性设置验证

    原文:mvc中动态给一个Model类的属性设置验证 在mvc中有自带的验证机制,比如如果某个字段的类型是数字或者日期,那么用户在输入汉字或者英文字符时,那么编译器会自动验证并提示用户格式不正确,不过这 ...

随机推荐

  1. appium_python 怎样实现参数化自动生成用例

    1.对于一种对同一个页面同一点 要用不同数据测试形成多条测试用例,如果复制的话 会让代码很冗长,并且并不好维护,现在用封装的方法把 不变的代码 和 变化的参数 分别封装,形成动态 生成测试用例 ,主要 ...

  2. redmine2.3环境搭建

    1. 安装redmine bitnami-redmine-2.3.0-0-windows-installer.exe安装到C:\BitNami\redmine-2.3.0-0目录下. 其中redmin ...

  3. Python多进程-进程间数据的共享

    不同的进程不能同时修改一份数据,但是不同的进程能对一份数据进行修改 可通过Manager来实现进程间的数据共享 # -*- coding:utf-8 -*- __author__ = "Mu ...

  4. ios下编译opencv

    如果想要在ios下编译opencv 需要安装Cmake 这里通过homebrew 来安装cmake ios下打开终端然后先安装 homebrew :(mac 下自带ruby) ruby -e &quo ...

  5. Android中Activity之间的数据传递

    在开发中,我们经常涌用到Activity,那么既然用到了Activity,就一定免不了在两个或者多个Activity之间传递数据.这里我们先说一说原理,然后在看看代码和例子. 情况A:我们需要从Act ...

  6. Mac系统下MySql下载MySQL5.7及详细安装流程

    一.在浏览器当中输入以下地址 https://dev.mysql.com/downloads/mysql/    二.进入以下界面:直接点击下面位置 ,选择跳过登录 点过这后直接下载. 三.下载完成后 ...

  7. group()、start()、end()、span()

  8. SQL基础E-R图画法

    例一.假设有以下表:T1(a1,a2, a3, a5)T2(a3,a4)T3(a5, a6)T4(a3, a5, a7)其中带下划线的属性标识为所在关系模式的主码T1中的a3是参照T2的外码T1中的a ...

  9. 在Oracle 12C中使用scott账号

    在Oracle11g中默认是有scott账号的,但在Oracle 12C中则不能直接使用. 我的机器环境: 操作系统:Windows Server 2008 R2 64位 Oracle版本:Oracl ...

  10. MinGW lapack 在windows 上安装

    MinGW基本的配置环境 编译安装 方案一:MinGW Makefiles 我的配置好之后mingw文件夹下没有mingw32-make.exe,使用 mingw-get install mingw3 ...