c# - 在 Asp.Net Core 中通过 ModelState 清除字段值之一?
问题描述
我只想让一个字段值为空
ModelState.Clear 清除所有字段
模型 :
public class UserViewModel{
[Required("")]
public string Mobile { get; set; }
[Required("")]
public string Name { get; set; }
}
控制器 :
public IActionResult Create(UserViewModel viewModel){
if (!ModelState.IsValid)
{
//clear just field "Name"
return view(viewModel);
}
}
我只想在返回时清理“名称”字段?
解决方案
尝试这个
if (ModelState.ContainsKey("Name")) ModelState.Remove("Name");
并且更好地以这种方式使用它
if (ModelState.ContainsKey("Name")) ModelState.Remove("Name");
if (!ModelState.IsValid)
{
return view(viewModel);
}
如果您只想清除值
ModelState.SetModelValue("Name", new ValueProviderResult(string.Empty, CultureInfo.InvariantCulture));
由于您没有清除错误并且如果它有错误,ModelState 仍然无效。
如果需要,您可以删除错误
ModelState["Name"].Errors.Clear();
推荐阅读
- lua - 在 nix-shell `shell.nix` 中构建 Lua 包
- python - 如何从多个字典列表中获取特定值
- c++ - 构造函数中类的默认值
- python - FastAPI:ModuleNotFoundError:没有名为“uvicorn”的模块
- azure - 带有 -UserAssignedIdentity 的 Set-AzApiManagement 给出错误请求
- python - UnicodeEncodeError: 'latin-1' 读取文本文件时
- spring-security - Vaadin + Spring Security 可以仅充当 oauth2 用户代理而不是客户端吗?
- api - 对于 GSuite,新添加的用户未显示
- powershell - 我需要在卸载 symantec 之前重新启动远程计算机
- c++ - C++ 字符串赋值错误。如何为结构指针的字符串成员赋值?