I had them flipping back and forth depending whether they were multi-select lookups, single lookups, or plain text/number fields. However, it seems to be the case that not all fields on an item follow the same rules.

sharepoint 2016 itemupdating afterproperties-9

Here is the example: This is a pretty useful discovery.

Microsoft is conducting an online survey to understand your opinion of the Msdn Web site.

After Properties have values only if you really change the value for that fields.

If you don't, you'll obtain a collection of 0 items.

After Properties[internal Name]); if (Before Value !

Before Properties[internal Name]); string After Value = properties.

I've got a similar issue where itemupdating was working in SP2010, however it's firing in SP2013 but the values don't change. I change the name in a list item and then it's still got the old value when saved. Item Updating(properties); as I'm inheriting from the SPItem Event Receiver class.

Before Properties have values only Item Updating and Item Updated for Document library (not for lists).

After Properties will have the correct value, only when Email is also updated through code.