简单类型
模型绑定器能将源字符串转换为其本身的简单类型包含如下:
- Boolean
- Byte, SByte
- Char
- DateTime
- DateTimeOffset
- Decimal
- Double
- Enum
- Guid
- Int16, Int32, Int64
- Single
- TimeSpan
- UInt16, UInt32, UInt64
- Uri
- Version
复杂类型
一个复杂类型必须有一个public 默认的构造函数以及一些public的可读写的属性用来进行绑定。当模型绑定发生时,复杂类型会用public 默认构造函数进行实例化。
对于复杂类型的每个属性,模型绑定为名称模式 prefix.property_name 来查找源。如果没有找到,它便会查找property_name 而忽略前缀。
对于绑定到一个参数来说,前缀将会是参数的名称。对于绑定到一个 PageModel public 属性来说,前缀将会是public 的属性名称。一些属性(attributes)会包含一个Prefix
属性,其允许你重写参数或者属性名的默认用法。
举个例子,假设复杂类型是如下的Instructor 类:
public class Instructor { public int ID { get; set; } public string LastName { get; set; } public string FirstName { get; set; } }
前缀 = 参数名
如果将要绑定的模型是名为 instructorToUpdate 的参数:
public IActionResult OnPost(int? id, Instructor instructorToUpdate)
模型绑定为键 instructorToUpdate.ID 来查找绑定源。如果没有找到,它将查找ID,而不带任何前缀。