MVC 4动态操作方法参数

时间:2013-03-12 02:53:57

标签: c# asp.net-mvc asp.net-mvc-4 knockout.js

我有以下类定义:

public class CallGroupViewModel
    {
        public string Name { get; set; }
        public string BulkEmails { get; set; }
        public List<dynamic> Members {get;set;}

    }

Members属性是一些动态淘汰代码,内容根据UI内容而变化。我想缩短界限,因为用户界面现在正在播出。

我的问题是,当它进入我的操作方法时,所有内容都会填充,包括成员,但它是一个objects数组,我无法获取它们的各个属性。

public ActionResult SaveGroup(CallGroupViewModel group)

group.Members //this has a count
group.Members[0].email //this pukes as 'email' is not valid for 'object'

我可能只是错过了什么,感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:0)

要从对象访问动态属性,您可以使用:

var email = group.Members[0].GetType()
                            .GetProperty("Email")
                            .GetValue(group.Members[0], null); 

答案 1 :(得分:0)

填充MVC操作方法参数的模型绑定系统不适用于动态对象。系统需要类型信息才能知道要绑定哪些信息。请考虑将模型更改为使用强类型。