0

私は次のモデルを持っています:

public class UserModel 
{
   [Required]
   public String Name {get; set; }

   [Required]
   public String Surname {get; set; }

   [Required]
   [Remote("ValidateIdNumber", "CustomValidation", "", ErrorMessage = "Invalid ID")]
   public String IDNumber {get; set; }
}

管理領域であるユーザー作成フォームがあります。つまり、「/Admin/User/Create」です。

私の「ValidateIdNumber」アクションはコントローラー「CustomValidation」のルートにあるため、アクセスするには「/CustomValidation/ValidateIdNumber」に移動する必要があります

public Boolean ValidateIdNumber(String IDNumber) {
     //Validate ID number and return result.
}

問題は、フォームが作成されると、リモート検証が「/Admin/CustomValidation/ValidateIdNumber」をターゲットにすることです。

<input class="text-box single-line" data-val="true" data-val-remote="Invalid ID" data-val-remote-additionalfields="*.IDNumber" data-val-remote-url="/Admin/CustomValidation/ValidateIdNumber" data-val-required="Please provide a ID Number" id="IDNumber" name="IDNumber" type="text" value="">

エリアを削除するにはどうすればよいですか? Remote 属性の area パラメータを空の文字列 ("") と null にしようとしました。

何か案は?検証をエリアではなくルートに維持したいと考えています。

4

1 に答える 1

1

カスタムのリモート属性を作成できます。こちらを参照してください:

ASP.NET MVC 3 リモート検証

于 2014-08-26T07:09:18.153 に答える