4

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] = "";
    }
  }
}
4

1 に答える 1

11

受け取ったモデルで同じビューを返し、コードを次のように変更する必要があります。

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

    this.ModelState.SetModelValue(
        key,
        emptyValue);
}
于 2011-10-18T11:55:17.800 に答える