ソリューションでユーザーを追加または編集するときに、ユーザー名がまだ使用されていないことを確認したいと思います。
リモート検証で行うことは次のとおりです。
ビューモデル:
[Required, Remote("UserNameAlreadyExists", "User", Error="Already exists!")]
public string UserName { get; set; }
コントローラ:
public ActionResult UserNameAlreadyExists(string userName)
{
var user = _requestServiceClient.GetUserFromUserName(userName);
return Json(user == null, JsonRequestBehavior.AllowGet);
}
それは作成のためにかなりうまく機能します。ただし、編集されたユーザー自身のユーザー名が既に存在するため、エディションでは機能しません。分かりますか?
解決策は、UserName と UserID に基づいて DB をチェックインすることです。したがって、ユーザーを編集する場合、ユーザー名がまだ存在しないことを確認できます (パラメーターとして渡されたユーザー ID を除く)。それは良い代替手段ですか?リモート検証属性でこのユーザー ID を渡す方法は?
ありがとう。