【问题标题】:ASP.NET MVC UpdateModel is not working (with Devexpress)ASP.NET MVC UpdateModel 不工作(使用 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
  • 我看到你没有这样做的权限。然后我会将您的评论作为答案发布,您可以接受。好吗?
  • 好吧,我在等你

标签: asp.net model-view-controller entity-framework-4 devexpress devexpress-mvc


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    相关资源
    最近更新 更多