在 ASP.NET Core 中,数据绑定的默认行为是大小写敏感的,这意味着属性名或者表单元素名如果大小写不匹配,数据绑定就会失败。解决该问题的方法是修改数据绑定的配置,使其忽略属性名和表单元素名的大小写。可以通过在应用程序的 Startup 类中添加如下代码解决该问题:
services.Configure(options =>
{
options.ModelMetadataDetailsProviders.Add(new CaseInsensitiveModelMetadataProvider());
});
public class CaseInsensitiveModelMetadataProvider : DefaultModelMetadataProvider
{
protected override CachedModelMetadata CreateCachedMetadata(DisplayMetadata identity, Func
在上面的代码中,我们创建了一个 CaseInsensitiveModelMetadataProvider 类,并继承了 DefaultModelMetadataProvider。然后,重写了 CreateCachedMetadata 方法,在该方法中将属性名改为小写形式(以保证大小写不敏感)。接下来,在 Startup 类中将该 CaseInsensitiveModelMetadataProvider 添加到 MvcOptions 中。这样,我们就成功地解决了 ASP.NET Core 数据绑定的大小写敏感问题。