Передача анонимного типа в UpdateModel / TryUpdateModel в ASPNETMVC - PullRequest
2 голосов
/ 06 марта 2009

Учитывая следующий метод контроллера:

    [AcceptVerbs("POST","GET")]
    public ActionResult apiMapInfo()
    {
        var x = new { Lat = "", Long = "", Name = ""};
        var mapInfo = new DALServices.Models.MapInfo();

// Обновление корректно

        TryUpdateModel(mapInfo); 

// Не обновляется правильно

        TryUpdateModel(x); 

        var svc = new APIServices.Services.ReturnMapInfo() {inputs = mapInfo};
        svc.Run();
        return new ObjectResult<Result>(new Result(svc.errorCode, svc.errorMessage, svc.results), svc.ExtraTypesForSerialization);
    }

Объект x не обновляется корректно методом TryUpdateModel, но объект mapInfo имеет значение.

Я предполагаю, что метод TryUpdateModel не обрабатывает сопоставление с анонимным типом, таким как x.

Спасибо

Hal

Ответы [ 3 ]

4 голосов
/ 06 марта 2009

Анонимные типы неизменны . Следовательно, они не могут быть обновлены.

3 голосов
/ 06 марта 2009

Анонимные типы имеют свойства только для чтения, и, следовательно, для TryUpdateModel нет общедоступного установщика для изменения значения свойства.

1 голос
/ 06 марта 2009

Я предполагаю, потому что UpdateModel и TryUpdateModel, которые ищут свойства и отражают анонимные типы, могут немного отличаться В любом случае проще всего создать конкретный тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...