私はmvcに非常に慣れていませんが、次のようなオブジェクトを含むビューモデルを持っているとは言えません
public class vm_set_rol
{
public IEnumerable<SelectListItem> roles { get; set; }
public Rol_User rol { get; set; }
}
ロールは次のようなオブジェクトです。
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>
問題は、null 値しか取得できないことです。モデルに文字列や int などの他のプロパティを作成すると、それらは問題なくポストバックされます。
オブジェクトがポストバックされない理由がなんとなくわかりました。回避策はありますか??? または、モードにオブジェクトを置くのは間違っているので、オブジェクトではなくビューモデルでプロパティを宣言する必要がありますか???