0

私は次のメインモデルを持っています:

public class PersonalDetailContainerViewModel {

    public AprobacionViewModel aprobacionPersonal { get; set; }
    public AprobacionViewModel aprobacionMinera { get; set; }

public PersonalDetailContainerViewModel() {
        aprobacionPersonal = new AprobacionViewModel();
        aprobacionMinera = new AprobacionViewModel();
    }
}

サブモデル:

public class AprobacionViewModel {

    [DisplayName("Observación")]
    public string observation { get; set; }
    [DisplayName("Responsable")]
    public string responsable { get; set; }
    [UIHint("DropDownList")]
    [DisplayName("Estado")]
    public IEnumerable<SelectListItem> ListEstado { get; set; }

    public AprobacionViewModel() {
        ListEstado = CommonService.createDropDownListEstado();
    }

}

メインビュー:

@model PersonalDetailContainerViewModel

@Html.Partial("Aprobacion", Model.aprobacionPersonal)
@Html.Partial("Aprobacion", Model.aprobacionMinera)

そして ... 詳細ビュー:

@model AprobacionViewModel
<fieldset>
    <legend>Aprobación / Rechazo</legend>
            @Html.EditorFor(m => m.ListEstado, null)<br />
            @Html.EditorFor(m => m.observation, null)<br />
            @Html.EditorFor(m => m.responsable, new { disabled = "disabled" })

</fieldset>

私の質問、バインディングでは、ArobacionViewModel のフィールドに対して常に null 値を受け取ります。

[HttpPost]
public ActionResult Details(PersonalDetailContainerViewModel model){

    model.aprobacionPersonal.observation //NULL ??
}

カスタムモデルバインダーなしでサブビューでサブモデルを使用することは可能ですか?

追記: ダリン・ディミトロフは私のヒーローです :)) 「いいね!」をクリックするためだけのファンページが欲しいです。Darin vous êtes mon héros !! あなたのお気に入りのページ facebook を投稿してファンを獲得しますか ?

4

1 に答える 1

0

@Html.Partial要素をレンダリングするときにモデルの階層性を尊重しないため、フォーム要素には適切な名前が付けられず、モデルにバインドされません。

@Html.EditorFor代わりに使用してください:

@model PersonalDetailContainerViewModel

@Html.EditorFor(model => model.aprobacionPersonal)
@Html.EditorFor(model => model.aprobacionMinera)

Html.PartialHTMLコンテンツ/レイアウトなどをレンダリングするために使用します-フォームの一部としてのものではありません。

于 2012-10-04T01:45:27.827 に答える