简体   繁体   中英

How to add child partial view to parent partial view?

I have a button which add parent partial view and parent partial view also have a add button which adds child partial view in it.My problem is that when i press main button to add 2 parent partial view and press add child partial button in second parent partial view, then child partial view create in first parent partial view.I want to add child partial view according to parent partial view. How can i do this?

Coding

//parent partial

<div id="individual-details" class="card">
    <div class="card-header">
        @(Model.SearchFirstName + Model.SearchLastName == "" ? "New Search Individual" : Model.SearchFirstName + Model.SearchLastName)
        @if (ViewData["hideRemove"] == null || (bool?)ViewData["hideRemove"] == false)
        {
            <a id="individual-remove" href="#" onclick="removeIndividual(this)" class="btn btn-danger pull-right">Remove</a>
        }
    </div>
    <div class="form-horizontal">
        <div class="card-block">
            <div class="form-group">
                @Html.LabelFor(m => m.SearchPostcode, "Search Post Code", new { @class = "form-control-label" })
                @Html.TextBoxFor(m => m.SearchPostcode, null, new { @class = "form-control" })
            </div>

        </div>
    </div>
    <div class="card-block">
        <div id="Characteristics" class="mb-3">
            @if (Model?.Characteristics != null)
            {
                for (var i = 0; i < Model?.Characteristics.Count; i++)
                {
            <div class="form-group">
                @{ Html.RenderPartial("IndividualSearchCharacterisiticPartial", Model.Characteristics[i], new ViewDataDictionary()); }
              @*  @Html.EditorFor(m => m.Characteristics);*@
            </div>
                }
            }
        </div>
        <button id="add-characteristics" onclick="add(this)" type="button" class="btn btn-success">Add Characteristics</button>
    </div>
</div>

//Button 
function add(element){
               var action = ' @Url.Action("NewIndividualSearchCharacteristic", "Blended")';
               $.post(action)
              .done(function (partialView) {
                  $('#Characteristics').append(partialView);
              });
        }

//child partial


@model ABC.Core.Models.DTOs.Characteristic

@using (Html.BeginCollectionItem("Characteristics"))
{
    <div id="characteristic-details" class="card">
        <div class="form-horizontal">
            <div class="card-block">
                <div class="container">
                    <div class="row">
                        <div class="col-*-*">
                            @Html.LabelFor(m => m.Name, "Name", new { @class = "form-control-label" })
                        </div>
                        <div class="col">
                            @Html.TextBoxFor(m => m.Name, null, new { @class = "form-control" })
                        </div>
                        <div class="col-*-*">
                            @Html.LabelFor(m => m.Value, "Value", new { @class = "form-control-label" })
                        </div>
                        <div class="col">
                            @Html.TextBoxFor(m => m.Value, null, new { @class = "form-control" })
                        </div>
                        <div class="col-*-*">
                            <a id="characteristic-remove" href="#" onclick="removeCharacteristic(this)" class="btn btn-danger pull-right">Remove</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
}````

$('#Characteristics').append(partialView);

If you use Id selector, it will always select the first element with the id Characteristics .

Try the below codes:

function add(element){
        var action = ' @Url.Action("NewIndividualSearchCharacteristic", "Blended")';
        $.post(action)
        .done(function (partialView) {
            element.previousElementSibling.append(partialView);
        });
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM