Sha*_*eKm 3 asp.net-mvc asp.net-mvc-3
我有一个班级管理员:
public class Admin
{
public virtual int AdminId { get; set; }
[Remote("UsernameAvailable", "Admins")]
[Display(Name = "lblUsername", ResourceType = typeof(Resources.Admin.Controllers.Admins))]
public virtual string Username { get; set; }
...
Run Code Online (Sandbox Code Playgroud)
然后我有一个用于视图的viewmodel类:
public class AdminsEditViewModel
{
public Admin Admin { get; set; }
public IEnumerable<SelectListItem> SelectAdminsInGroup { get; set; }
...
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult UsernameAvailable(string Username)
{
return Json(this.AdminRepository.GetLoginByUsername(Username), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
但是,字符串Username始终为null,因为发送给Action的是:
http://localhost/admin/admins/usernameavailable?Admin.Username=ferwf
Run Code Online (Sandbox Code Playgroud)
问题是UsernameAvailable在http查询中发送Admin.Username值和NOT Username值.我如何使用视图模型?
谢谢
您可以为默认模型绑定器指定前缀:
public ActionResult UsernameAvailable([Bind(Prefix = "Admin")]string username)
{
return Json(
this.AdminRepository.GetLoginByUsername(username),
JsonRequestBehavior.AllowGet
);
}
Run Code Online (Sandbox Code Playgroud)
或使用您的Admin模型:
public ActionResult UsernameAvailable(Admin admin)
{
return Json(
this.AdminRepository.GetLoginByUsername(admin.Username),
JsonRequestBehavior.AllowGet
);
}
Run Code Online (Sandbox Code Playgroud)
username假设以下请求,现在参数将被正确绑定:
http://localhost/admin/admins/usernameavailable?Admin.Username=ferwf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3177 次 |
| 最近记录: |