.NET Core設置參數綁定null值為空字符串
时间: 2023-09-22 09:07:54 浏览: 160
asp.net core系列之模型绑定和验证方法
在 .NET Core 中,可以使用 `[BindNever]` 特性标记绑定模型中的特定属性,以防止它们被绑定。然后,在控制器中使用 `TryUpdateModelAsync` 或 `TryUpdateModel` 方法更新模型时,可以在方法的参数中使用 `BinderModelOptions` 类型的 `binderOptions` 参数,以指定如何处理绑定模型中的 null 值。具体来说,可以使用 `BinderModelOptions` 类型的 `SuppressNullValues` 属性,将 null 值替换为空字符串。
以下是示例代码:
```csharp
public async Task<IActionResult> UpdateItem([BindNever] Item itemToUpdate, BinderModelOptions binderOptions)
{
// 使用 TryUpdateModelAsync 或 TryUpdateModel 方法更新模型
if (await TryUpdateModelAsync(itemToUpdate, "", i => i.Name, i => i.Description))
{
// 将 null 值替换为空字符串
if (binderOptions.SuppressNullValues)
{
itemToUpdate.Name ??= "";
itemToUpdate.Description ??= "";
}
// 执行更新操作
// ...
}
// ...
}
```
在上面的示例中,`SuppressNullValues` 属性指定了当更新模型时,将 null 值替换为空字符串。此外,`[BindNever]` 特性可用于标记不想绑定的属性。在此示例中,`Item` 类中的 `itemToUpdate` 属性被标记为不绑定。
阅读全文