3
は、私はクラスの管理を持っています文字列ユーザー名は常にnullです。アクションに送信される内容は次のとおりです。MVC3リモート属性検証
問題は、UsernameAvailableがhttpクエリでAdmin.Username値とUsername値を送信しないことです。ビューモデルを使ってどうすればいいですか?
おかげ
は、私はクラスの管理を持っています文字列ユーザー名は常にnullです。アクションに送信される内容は次のとおりです。MVC3リモート属性検証
問題は、UsernameAvailableがhttpクエリでAdmin.Username値とUsername値を送信しないことです。ビューモデルを使ってどうすればいいですか?
おかげ
デフォルトのモデルバインダーに接頭辞を指定できます。今username
パラメータが正しく、以下を想定してバインドされます
public ActionResult UsernameAvailable(Admin admin)
{
return Json(
this.AdminRepository.GetLoginByUsername(admin.Username),
JsonRequestBehavior.AllowGet
);
}
:
public ActionResult UsernameAvailable([Bind(Prefix = "Admin")]string username)
{
return Json(
this.AdminRepository.GetLoginByUsername(username),
JsonRequestBehavior.AllowGet
);
}
たりAdmin
モデルを使用しますリクエスト:
http://localhost/admin/admins/usernameavailable?Admin.Username=ferwf
私は2番目のアプローチをお勧めします。基本的には別のアクションメソッドのように思えます。その場合、デフォルトのモデルバインダーはユーザー名文字列ではなくAdminにバインドされます。 –
が働いた。しかし、私は "AdminViewModel"にバインドしなければならず、 "Admin"ではそうではありませんでした:public ActionResult UsernameAvailable(AdminsEditViewModel row) – ShaneKm