2017-06-03 8 views
0

AccessoryTypeが一意であることを検証しようとしています。リモート検証をモデルに入れました。サーバー側リモート検証が実行されない

ここでは、コードの設定は、モデルでは、

public class AccessoryTypeMasterMetaData 
{ 
    [Remote("checkAccessoryTypeExist", "AccessoryType")] 
    [Required(ErrorMessage = "Please enter accessory type.")] 
    [StringLength(20, ErrorMessage = "Please enter maximum of {1} characters in accessory type.")] 

    public string AccessoryType { get; set; } 
} 

そして、私はAPIコントローラーで** checkAccessoryTypeExist方法、**

[HttpPost] 
    [AllowAnonymous] 
    [Route("api/AccessoryType/checkAccessoryTypeExist")] 
    public IHttpActionResult checkAccessoryTypeExist(string accessoryType, int accessoryTypeID) 
    { 
     AccessoryTypeMasterService accessoryTypeMasterService = new AccessoryTypeMasterService(); 

     BaseResponseModel<bool> baseResponseModel = new BaseResponseModel<bool>(); 
     baseResponseModel.status = true; 
     baseResponseModel.data = false; 

     if (!string.IsNullOrEmpty(accessoryType)) 
     { 
      baseResponseModel.data = accessoryTypeMasterService.CheckAccessoryType(accessoryType, accessoryTypeID); 
      baseResponseModel.message = LES_Common.STATUS_SUCCESS; 
     } 

     return new BaseResponseResult<bool>(baseResponseModel, Request); 

    } 

を入れているので、問題がありますサーバー側でリモート検証が実行されていない しかし、他の妥当性検査が実行されています(Required、StringLengthなど)

私のコードに問題はありますか?助けてください..

答えて

0

メソッド宣言には、2つのパラメータaccessoryType , accessoryTypeIDがあります。 AccessoryTypeMasterMetaDataモデルではAccessoryTypeにのみ適用されます。だから、あなたは、このような性質の何かにRemoteAttributeを変更する必要があるかをチェックするためにさらにaccessoryTypeIDが必要な場合にのみAccessoryType値を取得します:

[Remote("checkAccessoryTypeExist", "AccessoryType",HttpMethod = "POST", AdditionalFields = nameof(AccessoryTypeID), ErrorMessage = "Error message to display.")] 

そして、あなたがあなたのメソッドのシグネチャを変更した場合、それは良いでしょう:

public IHttpActionResult checkAccessoryTypeExist(AccessoryTypeMasterMetaData modelData) 
    { 


// You can access it here i.e. modelData.AccessoryType and modelData.AccessoryTypeID 

    } 
+0

私はエラー 'nameof'がモデルコードに存在しないことを発見しています。 –

+1

私はあなたがなぜそれがサポートされていないより低いバージョンを使用していると思います。 'nameof(AccessoryTypeID)'を削除して、 '' AccessoryTypeId '''を使うことができます。 –

+0

私のルートが "api/accessoryType/checkAccessoryTypeExist"なので、モデル側の 'GetUrl'フィールドを使って動作させるには? –

関連する問題