如果ModelState表示该字段无效,则清除字段值

use*_*833 4 model-view-controller asp.net-mvc modelstate

如果ModelState显示该字段无效,我想清除模型中字段的提交值.

这是我到目前为止所处的位置,但无法在模型中占据关键的价值.有什么建议?

if (!ModelState.IsValid)
{
  foreach (string key in ModelState.Keys)
  {
    if (!ModelState.IsValidField(key))
    {
       // This field is not valid so set to empty string in model
       // Something like....
       model[key] = "";
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Joã*_*elo 11

您应该使用收到的模型返回相同的视图,并将代码更改为以下内容:

if (!this.ModelState.IsValidField(key))
{
    var emptyValue = new ValueProviderResult(
        string.Empty,
        string.Empty,
        CultureInfo.CurrentCulture);

    this.ModelState.SetModelValue(
        key,
        emptyValue);
}
Run Code Online (Sandbox Code Playgroud)