ASP.NET MVC UpdateModel 不工作(使用 Devexpress)

Posted

技术标签:

【中文标题】ASP.NET MVC UpdateModel 不工作(使用 Devexpress)【英文标题】:ASP.NET MVC UpdateModel is not working (with Devexpress) 【发布时间】:2018-12-26 05:51:30 【问题描述】:

我创建了一个视图、实体模型和 Devexpress Grid 扩展。 Devexpress 已自行生成代码。但是 UpdateModal 函数不适用于类中的控制器函数。 抛出“'Models.Birim' 类型的模型无法更新。”错误文本。

我的代码:

[HttpPost, ValidateInput(false)]
        public ActionResult MagazaGridPartialUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] Models.Birim item)
        
            var model = db.Birim;
            if (ModelState.IsValid)
            
                try
                
                    var modelItem = model.FirstOrDefault(it => it.id == item.id);
                    if (modelItem != null)
                    

                        this.UpdateModel(modelItem);
                        db.SaveChanges();
                    
                
                catch (Exception e)
                
                    ViewData["EditError"] = e.Message;
                
            
            else
                ViewData["EditError"] = "Please, correct all errors.";
            return PartialView("_MagazaGridPartial", model.ToList());
        

它可以实现我的工作理念吗?

【问题讨论】:

嗨,我搜索这个问题的解决方案 24 小时。但我找到了解决方案。仅适用于 Devexpress devexpress.com/Support/Center/Question/Details/T204240/… 添加 Application_Start() ModelBinders.Binders.DefaultBinder = new DevExpressEditorsBinder(); 您应该将您的评论作为答案发布并接受答案。 我怎样才能检查我的帖子是否已完成:D 我看到你没有这样做的权限。然后我会将您的评论作为答案发布,您可以接受。好吗? 好吧,我在等你 【参考方案1】:

正如 orçun 已经指出的,DevExpress 支持在 DevExpress 论坛中提供了必要的步骤。

引用DevExpress forum:

为了正确应用我们控件的发布数据,我们的 应该使用 DevExpressEditorsBinder。 UpdateModel 方法确实 不使用在动作的 ModelBinder 属性中指定的活页夹 方法。必须将其指定为默认活页夹。

protected void Application_Start()

    ...
    ModelBinders.Binders.DefaultBinder = new DevExpressEditorsBinder();

如果你不想要这个,你可以从“item”中获取新的值 GridViewPartialUpdate 动作方法的参数:

modelItem.LoginUsuario = item.LoginUsuario;
modelItem.Nome = item.Nome;
modelItem.Email = item.Email;
modelItem.Ativo = item.Ativo;

【讨论】:

以上是关于ASP.NET MVC UpdateModel 不工作(使用 Devexpress)的主要内容,如果未能解决你的问题,请参考以下文章

MVC3 - UpdateModel ...如何更改传入数据?

MVC2 在 UpdateModel() 中抛出 InvalidOperationException,试图更新 id 字段

跟我学ASP.NET MVC之二:第一个ASP.NET MVC程序

asp.net mvc 问题!

文件上传到 ASP。 NET MVC 6 不工作

ASP.NET MVC OutputCache 不适用于根 URI