0

検証されるプロパティを持つ抽象モデルがあります。コントローラーパラメーターに現在のコントローラーを設定したいので、リモート属性から継承するカスタム属性を追加しました。問題は、モデルのバインド時に属性の検証が 1 回適用されることです。

[SimpleListRemoteValidation("ValidateName", HttpMethod = "POST", AdditionalFields = "Id,SimpleModelType")]
    public string Name { get; set; }

SimpleListRemoteValidation は Remote 属性から継承されます

public class SimpleListRemoteValidationAttribute:System.Web.Mvc.RemoteAttribute
  {
    public SimpleListRemoteValidationAttribute(string action)
      : base(action, HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString())
    {
    }
  }

モデルバインドあり

@foreach (var p in Model.GetProperties())
  {
    <td>
      @Html.Editor(p.Name)
      @Html.ValidationMessage(p.Name)
    </td>
  }

最初のリクエストで、属性のコンストラクターを入れます。別のコントローラーに行くと、それは起こりません。

4

0 に答える 0