Для словаря без учета регистра вы можете попробовать создать свой собственный словарь, например
public class CaseInSensitiveDictionary<TValue> : Dictionary<string, TValue>
{
public CaseInSensitiveDictionary():base(StringComparer.OrdinalIgnoreCase)
{
}
}
А затем
[HttpPost]
public IActionResult DoStuff([FromBody] CaseInSensitiveDictionary<object> data)
{
var t1 = data["t1"];
var T1 = data["T1"];
//do stuff with Case-Insentive dictionary here
return StatusCode(200);
}