我对 mvc 很陌生,以免说我有一个包含对象的视图模型
public class vm_set_rol
{
public IEnumerable<SelectListItem> roles { get; set; }
public Rol_User rol { get; set; }
}
rol 是一个对象,如:
public class Rol_User
{
public int idUser { get; set; }
public int Role { get; set; }
public int GrantedBy { get; set; }
public bool canGrant { get; set; }
public DateTime ExpirationDate { get; set; }
}
所以我在视图上有一个表单,让用户从角色下拉列表中选择 1 个角色,然后选择一个日期和一个复选框,例如:
<div class="ModalContainer">
@using (Ajax.BeginForm(new AjaxOptions
{
UpdateTargetId = "gestionRolContainer",
Url = "Permiso/Test",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
}
)
)
{
<fieldset>
<legend>@Res_String.RolLabel</legend>
<span>ROL:</span><br />@Html.DropDownListFor(m => m.rol, Model.roles, new {@id="AdmPermUserRolesDropDown" })
<br />
@Html.CheckBoxFor(m => m.rol.conceder ,Model.rol.conceder) <span>Delegate?</span>
<br />
<input type="submit" class="buttonClass" value="OK" />
</fieldset>
}
</div>
问题是我只得到空值,如果我在模型上创建一些其他属性,如字符串或 int,则这些属性会被回发,
我有点理解为什么不回发对象,胸围有什么解决方法吗???或者在模式上放置一个对象是错误的,我应该在视图模型上声明属性而不是对象???