0

这个问题看起来很奇怪,但我正在使用 DevExpress 库,我需要通过 DevExpressBeginCallback事件将我自己的对象(视图模型)发送到控制器操作。

基本上我有一个简单而高级的搜索,简单的搜索可以完美地工作,因为它只是一个字符串值

    [ValidateInput(false)]
    [Authorize]
    public ActionResult DevExpressGridView(string simple, AdvanceSearch adv)
    {
          ViewData["data"] = simple;
         ..Search Logic
    }

因此,当填充 Gridview 时,我想双击一行以从数据库中获取项目

    function CallBack(s, e) {

        e.customArgs['simple'] = "@ViewData["data"]";
    }

最后是 Gridview Action 方法

  @Html.Action("DevExpressGridView", new { simple = @ViewData["data"] })

但是如果用户想要做一个我自己的 ViewModel 的 AdvanceSearch,我怎么能通过回调发回数据呢?如果可能的话?

    [ValidateInput(false)]
    [Authorize]
    public ActionResult DevExpressGridView(string simple, AdvanceSearch adv)
    {
          ViewData["data"] = adv;
         // Its my own type so it can't work can it?
    }

我会询问 DevExpress 支持团队,但我仍在获得许可证,所以他们在那之前不会提供帮助

提前致谢

4

1 回答 1

1

ViewData正如您从相关的 msdn 文档页面ViewDataDictionary中看到的那样,属于实现的类型。因此,您可以在其中存储任何类型的对象,尽管我个人更喜欢在大多数情况下返回视图模型。IDictionary<string,object>

于 2014-10-13T11:02:47.220 回答