在 Asp.Net Core 中通过 ModelState 清除其中一个字段值?
Clear One of Fields Value By ModelState In Asp.Net Core?
我只想让一个字段值为空
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);
}
}
我只想在 return ?
时清除“名称”字段
试试这个
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();
您可以使用ModelState.Remove("FieldName");
我用了 ViewBag,效果更好
public IActionResult Create(UserViewModel viewModel){
if (!ModelState.IsValid)
{
ViewBag.value = "";
return view(viewModel);
}
}
Html :
<input id="answer" value="@ViewBag.value" asp-for="Name"/>
我只想让一个字段值为空
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);
}
}
我只想在 return ?
时清除“名称”字段试试这个
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();
您可以使用ModelState.Remove("FieldName");
我用了 ViewBag,效果更好
public IActionResult Create(UserViewModel viewModel){
if (!ModelState.IsValid)
{
ViewBag.value = "";
return view(viewModel);
}
}
Html :
<input id="answer" value="@ViewBag.value" asp-for="Name"/>