我試圖使用Html Display For Template來循環模型數據。在我的顯示模板中,我想使用EditorFor模板來顯示不同的數據集。這樣做時,我遇到了我的子模型爲空的問題。在玩了大衛之後,我得到了David的指導。下面,請找到我更新的工作解決方案。EditorForTemplate DisplayForTemplate MVC Razor
UPDATE(正確的解決方案)
public class TargetingAreaViewModel
{
public int DealerId { get; set; }
public int OrderId { get; set; }
public List<TargetingAreaOrderItemViewModel> TargetingAreaOrderItems { get; set; }
public TargetingAreaViewModel()
{
this.TargetingAreaOrderItems = new List<TargetingAreaOrderItemViewModel>();
}
}
public class TargetingAreaOrderItemViewModel
{
public int OrderItemId { get; set; }
public int PackageMediaTypeId { get; set; }
public string PackageMediaTypeHeader { get; set; }
public string MediaTypeDesc { get; set; }
public string TargetingAdditonalInfo { get; set; }
public List<TargetingAreaItemViewModel> TargetingAreaItems { get; set; }
public TargetingAreaOrderItemViewModel()
{
this.TargetingAreaItems = new List<TargetingAreaItemViewModel>();
}
}
public class TargetingAreaItemViewModel
{
public int OrderItemId { get; set; }
public int PackageMediaTargetingFieldId { get; set; }
public string TargetingAreaFieldTitle { get; set; }
public string TargetingValue { get; set; }
public bool IsEnabled { get; set; }
public bool IsRequired { get; set; }
public string Comment { get; set; }
}
父視圖
@model Models.TargetingAreaViewModel
@{
ApplicationContext.Current.PageTitle = "Targeting Info";
Layout = "~/Views/Shared/MainLayout.cshtml";
}
@using (Html.BeginForm("OrderItemTargetingInfo", "Home", FormMethod.Post, new { @class = "form-horizontal" }))
{
@Html.DisplayFor(m => m.TargetingAreaOrderItems)
<div class="col-sm-12">
<div class="pull-right">
<input id="Submit" type="submit" value="Submit" class="btn btn-primary" />
</div>
</div>
}
DisplayFor模板視圖
@model Models.TargetingAreaOrderItemViewModel
<div class="row">
<div class="col-sm-12">
<div class="col-sm-12 btn-primary" style="margin-bottom: 10px; margin-top: 10px;">
@Html.Label(Model.MediaTypeDesc, new { @style = "font-weight: bold; padding-top: 10px; font-size: 18px;" })
@Html.HiddenFor(m => m.OrderItemId)
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
@Html.Raw(Model.PackageMediaTypeHeader)
</div>
</div>
<br />
<div class="row">
<div class="col-sm-12">
@Html.EditorFor(m => m.TargetingAreaItems)
</div>
</div>
<br />
<div class="row">
<div class="col-md-12">
<div class="form-group">
@Html.Label("Additional Info:", new { @class = "control-label col-md-2" })
<div class="col-md-6">
@Html.TextAreaFor(m => m.TargetingAdditonalInfo, new { @class = "form-control" })
</div>
</div>
</div>
</div>
現在,我能夠顯示數據,獲取數據在我的Post上的模型。非常棒!
你能告訴我們更多的代碼,這裏沒有足夠的診斷問題。 – DavidG 2014-10-10 15:23:03
以上發佈更新。讓我知道你是否需要更多信息。 – bladerunner 2014-10-10 15:32:54