ASP.NET MVC UpdateModel не работает (с Devexpress)

Я создаю представление, модель объекта и расширение 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());
        }

может ли это работать на моей рабочей идее?


person withoutOne    schedule 18.07.2018    source источник
comment
Привет, я искал это решение проблемы в течение 24 часов. Но я нахожу решение. Работает только с Devexpress devexpress.com/Support/Center/Question/Details/T204240/ добавить в Application_Start() ModelBinders.Binders.DefaultBinder = new DevExpressEditorsBinder();   -  person withoutOne    schedule 18.07.2018
comment
Вам лучше опубликовать свой комментарий в качестве ответа и принять ответ.   -  person ViRuSTriNiTy    schedule 18.07.2018
comment
Как я могу проверить, что мой пост завершен :D   -  person withoutOne    schedule 18.07.2018
comment
Я вижу, у вас нет на это прав. Тогда я опубликую ваш комментарий как ответ, и вы можете принять его. ХОРОШО?   -  person ViRuSTriNiTy    schedule 18.07.2018
comment
Хорошо, я жду тебя   -  person withoutOne    schedule 19.07.2018
comment
Я разместил ответ на основе ссылки на форум.   -  person ViRuSTriNiTy    schedule 20.07.2018


Ответы (1)


Как уже указывал orçun, поддержка DevExpress предоставила необходимые шаги на форуме DevExpress.

Цитата с форума DevExpress:

Чтобы пост-данные наших элементов управления применялись правильно, следует использовать наш 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;
person ViRuSTriNiTy    schedule 20.07.2018