Mvc: JsonResult converts uppercase property names to lowercase

Created on 20 Jul 2016  路  2Comments  路  Source: aspnet/Mvc

My Model Gender.cs and my Controller use an uppercase property name. When the JsonResult data is sent back to the Angular 2 RC4 view it is converted into lowercase:
GenderName and GenderId change to genderName and genderId. Even Intellisense in my TypeScript file uses GenderName but I have to modify my HTML to genderName to accommodate this change that exists nowhere in my code or the results don't get displayed.

Model:

    public class Gender
    {
        [Key]
        public short GenderId { get; set; }
        public string GenderName { get; set; }
    }

Controller:

    [HttpGet]
    public JsonResult Get()
    {
        var genders = _context.Genders;

        var query = from g in genders
                    select new { g.GenderId, g.GenderName };

        List<Gender> GenderList = new List<Gender>();

        foreach (var item in query)
        {
            Gender gender = new Gender();
            gender.GenderId = item.GenderId;
            gender.GenderName = item.GenderName;
            GenderList.Add(gender);

        }

        return Json(GenderList);
    }
by design

Most helpful comment

Indeed, this was a deliberate change in behavior. See the linked announcement for how to customize the casing behavior.

All 2 comments

Indeed, this was a deliberate change in behavior. See the linked announcement for how to customize the casing behavior.

Was this page helpful?
0 / 5 - 0 ratings