如何将动态数据模型传递给Action?

时间:2011-06-27 12:41:59

标签: c# asp.net-mvc-3

我使用一些输入字段动态构建ASP.NET MVC3视图,但是动态创建UI的原因,我不知道哪些输入字段可用。 单击按钮(搜索)后,我想将实际的inputdata作为模型(ViewModel)传递给Action。这是问题所在,我不知道模型具有哪些属性以及如何将此动态模型/对象传递给Action。

我试着这样做:

public ActionResult StartQuery(dynamic request)
{
    var test = request;
    //...
}

但不知道如何处理这个动态对象。如果这是正确的方法,我是否必须使用反射,或者是否有人可以给我一个如何正确地将动态数据推送到动作的提示?

提前致谢, 科德

- 编辑

即使我知道输入ID也没有解决。继续获取DynamicBinderExceptions。

public ActionResult StartQuery(dynamic request)
    {
        string test = request.ArticleNo;
        string test2 = request.ArtNoOfSuppl;
        string test3 = request.ArticleGrp;
       //...

这些是测试的确切ID,我无法建立名称,可能会改变。

1 个答案:

答案 0 :(得分:3)

如果您知道可以直接从请求中获取的名称,请不要使用dynamic

public ActionResult StartQuery()
{
    string test = Request["ArticleNo"];
    string test2 = Request["ArtNoOfSuppl"];
    string test3 = Request["ArticleGrp"];
    ...
}

如果你不了解它们,你仍然可以遍历Request.Params集合,并根据你的规则找到你需要的参数。