【问题标题】:How to get the Partial View object on form submit如何在表单提交时获取部分视图对象
【发布时间】: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


【解决方案1】:

我还没有完全看懂你的代码

[HttpPost]
public ActionResult SubmitForm(list<CreateCampaignModel> createCampaignModelList)
{
  return (View(BindCampaignModel()));
}

就是这个思路,你可以get collection,如果你是从模型中构建局部视图,我还没有测试过代码..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多