ASP.NET WEB API 将默认的表单提交的<FromForm>中的null空值转换为空字符串
Public Class ModelBindingMetadataProvider
Inherits Object
Implements IDisplayMetadataProvider
Public Sub CreateDisplayMetadata(context As DisplayMetadataProviderContext) Implements IDisplayMetadataProvider.CreateDisplayMetadata
If context.Key.ModelType = GetType(String) Then context.DisplayMetadata.ConvertEmptyStringToNull = False '将默认的<FromForm>null值转为空字符串
End Sub
End Class
然后在WebApplication的Services中添加注入即可
builder.Services.AddControllers(Sub(opt) opt.ModelMetadataDetailsProviders.Add(New ModelBindingMetadataProvider)) '将服务添加到容器。
然后测试
<HttpPost>
Function Config_Save(<FromForm> id As String, <FromForm> Scheme As String, <FromForm> url As String, <FromForm> NameStr As String, <FromForm> ICP As String, <FromForm> RealName As String, <FromForm> Tel As String, <FromForm> Phone As String, <FromForm> Email As String, <FromForm> QQ As String, <FromForm> Address As String, <FromForm> HtmlTitle As String, <FromForm> HtmlKey() As String, <FromForm> HtmlDesc As String, <FromForm> Maplat As Double, <FromForm> Maplng As Double, <FromForm> OpenTime1 As String, <FromForm> OpenTime2 As String, <FromForm> State As Integer) As IActionResult
'我们这里会发现传进入进来的的参数,本来是nothing的,一下子变成为''空字符串了
Return Ok(id)
End Function