【发布时间】:2016-08-02 04:04:26
【问题描述】:
如何在表单提交时获取部分视图对象
主视图:
@model CreateCampaignModel
....
@using (Html.BeginForm("SubmitForm", "Campaign", FormMethod.Post))
{
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse2">Step 2: Creative*</a>
</h4>
<a style="padding-left:90%;" id="lnkEdit">Edit</a>
</div>
@Html.EditorFor(m => Model.campaignCreativeModelList[0])
@foreach (var m in Model.campaignCreativeModelList)
{
<div id="collapse2" class="panel-collapse collapse">
@Html.Partial("~/Views/Campaign/_Creative.cshtml", m)
</div>
}
</div>
}
创意局部视图:
<div class="panel-body">
<div class="form-group">
@Html.Partial("~/Views/Shared/_ImageVideoUploadView.cshtml", Model.socialJobMediaModel)
</div>
<div class="col-md-10">
<div class="editor-field">
<input type="submit" name="Save Group" value="Review and Submit" class="btn btn-primary" />
</div>
</div>
</div>
我的控制器动作:
[HttpPost]
public ActionResult SubmitForm(CreateCampaignModel createCampaignModel)
{
return (View(BindCampaignModel()));
}
我想将 campaignCreativeModel 对象连同部分视图内的所有部分视图集合一起返回给控制器。
我的主要模特:
公共类 CreateCampaignModel {
public List<CampaignCreativeModel> campaignCreativeModelList { get; set; }
public List<ClientAccountCampaignBundlesModel> clientAccountCampaignBundlesModelList { get; set; }
public List<CampaignBundleSchedulesModel> campaignBundleSchedulesModelList { get; set; }
public List<CampaignConfigurationModel> campaignConfigurationModelList { get; set; }
public CampaignConfigurationModel campaignConfigurationModel { get; set; }
}
我的模型在主视图中有与局部视图相关的所有集合。
截图:
【问题讨论】:
-
您有多个问题。首先,您的模型只有字段,
DefaultModelBinder不会绑定字段,只有属性。您生成的重复id属性是无效的 html。但是你真正想要提交的是什么?主视图中的模型是什么。您展示的“主要”模型是什么? -
你至少得到这个显示了吗?然后你的问题是如何让提交按钮回发所有数据?
-
我的设计非常完美,我可以对部分视图进行单独操作......我还没有把完整的设计放在很大的@Worthy
-
你想绑定什么属性(对不起,这很苛刻,但没有任何意义,而且肯定不会起作用)
-
我正在绑定 CreateCampaignModel 模型中提到的所有属性
标签: asp.net-mvc asp.net-mvc-4 http-post asp.net-mvc-partialview