繁体   English   中英

我们可以将ViewModel分配给ASP.Net MVC中的ViewData对象吗?

[英]Can we assign a ViewModel to a ViewData object in ASP.Net MVC?

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

基本上,我有一个简单而高级的搜索,该简单搜索非常有效,因为它只是一个字符串值

    [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"] })

但是,如果用户要执行一个AdvanceSearch(这是我自己的ViewModel),如何通过回调将数据发送回去? 如果可能的话?

    [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支持团队,但我仍在获取许可证,因此他们在那时将无济于事

提前致谢

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM