Asp.net mvc 使用VB.NET的MVC 4中的模型绑定不适用于使用自动实现属性的模型

Asp.net mvc 使用VB.NET的MVC 4中的模型绑定不适用于使用自动实现属性的模型,asp.net-mvc,vb.net,.net-4.5,Asp.net Mvc,Vb.net,.net 4.5,MVC4的模型绑定器似乎不适用于具有VB.NET自动实现属性的模型 例如,以这个人为的例子为例,我将一个简单的模型从JavaScript发布到一个控制器,该控制器(通过模型绑定器)对输入进行反序列化,并将其作为重新序列化的JSON返回 VB.NET中具有自动实现属性的ViewModel: Public Class CarViewModel Property Year As Integer Property Make As String Property Model

MVC4的模型绑定器似乎不适用于具有VB.NET自动实现属性的模型

例如,以这个人为的例子为例,我将一个简单的模型从JavaScript发布到一个控制器,该控制器(通过模型绑定器)对输入进行反序列化,并将其作为重新序列化的JSON返回

VB.NET中具有自动实现属性的ViewModel:

Public Class CarViewModel
     Property Year As Integer
     Property Make As String
     Property Model As String
End Class
Public Class CarViewModel
     Private _year as Integer
     Public Property Year As Integer
         Get
              Return _year
         End Get
         Set(ByVal value as Integer)
              _year = value
         End Set
     End Property

     ' endless typing for other properties

End Class
控制器:

Public Class CarController
    Inherits Controller

    <HttpPost> _
    Function Save(ByVal model as CarViewModel) As JsonResult
         Return Json(model)
    End Function

End Class
这不符合预期。在JavaScript中,当我发布到MVC URL时,我希望看到

{ "Year": 2000, "Make" : "Ford", "Model" : "Mustang" }
但我看到的是

{ "Year": 0, "Make" : "", "Model" : "" }
如果我将CarViewModel更改为使用标准属性:

Public Class CarViewModel
     Property Year As Integer
     Property Make As String
     Property Model As String
End Class
Public Class CarViewModel
     Private _year as Integer
     Public Property Year As Integer
         Get
              Return _year
         End Get
         Set(ByVal value as Integer)
              _year = value
         End Set
     End Property

     ' endless typing for other properties

End Class
MVC模型绑定器工作正常,正如预期的那样


可以将VB.NET的自动实现属性与MVC的模型绑定器一起使用吗?我遗漏了什么吗?

将属性作为字符串公开
公共属性模型
难以置信。谢谢