"Why is it unconstitutional? Does the Constitution claim that foreign governments have the right to buy any US asset they want?"
Since when is a BRITISH company a U.S. asset?
They aren't, obviously. But the terminals at the ports ARE, and I think congress is fully within their rights to prohibit a foreign government from controlling them.