如果提交了类似下面MyField的表单并在表单上留空,则默认情况下,Asp.Net Core模型绑定将null置于模型上的相应属性中,如下所示.
示例表格
<form asp-controller="SomeController" asp-action="SomeAction">
<label asp-for="MyField">My Field</label><input asp-for="MyField" type="text" />
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
示例模型
public class MyModel{
public string MyField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
示例操作方法
[HttpPost]
public IActionResult Post(MyModel m) {
//m.MyField will be null if the field was left empty
//but I want it set to a blank string by the model binder
}
Run Code Online (Sandbox Code Playgroud)
但是,由于MyField实际上是在Http Post体中传输的,我更喜欢模型绑定器将模型上的MyField属性设置为空字符串,而不是将其设置为null.对于MyField未在Http Post机构中传输的情况,我宁愿保留null .如何更改模型绑定器以显示此行为?