Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将另一个模型绑定到局部视图,如嵌套局部视图绑定_C#_Asp.net Mvc_Asp.net Core_Asp.net Mvc Partialview - Fatal编程技术网

C# 将另一个模型绑定到局部视图,如嵌套局部视图绑定

C# 将另一个模型绑定到局部视图,如嵌套局部视图绑定,c#,asp.net-mvc,asp.net-core,asp.net-mvc-partialview,C#,Asp.net Mvc,Asp.net Core,Asp.net Mvc Partialview,我有一个添加individualSearch局部视图的按钮,individualSearch局部视图也有一个添加按钮,在其中添加individualSearcharacteristic局部视图。 我想将BMRTestData模型与individualSearch partial绑定,以便获得具有特征的部分视图数据。因此,我将该数据存储在IndividualSearch的列表公共列表特征{get;set;}=new list() 请指导我做同样的事,因为我是新加入.net的 编码 //TestDa

我有一个添加individualSearch局部视图的按钮,individualSearch局部视图也有一个添加按钮,在其中添加individualSearcharacteristic局部视图。 我想将BMRTestData模型与individualSearch partial绑定,以便获得具有特征的部分视图数据。因此,我将该数据存储在IndividualSearch的列表
公共列表特征{get;set;}=new list()

请指导我做同样的事,因为我是新加入.net的

编码

//TestData(主视图)

@使用ABC.Core.Models.DTOs
@模型ABC.Core.Models.Api.BMRTestData
@使用(Html.BeginForm())
{
回应
@LabelFor(m=>m.CompanyName,“公司名称”,新的{@class=“formcontrollabel”})
@TextBoxFor(m=>m.CompanyName,null,new{@class=“form control”})
@Html.ValidationMessageFor(m=>m.CompanyName)
@if(Model?.IndividualSearches!=null)
{
对于(变量i=0;i
以下是测试结果:

更新 您可以在
addsearch Individual
按钮中添加onclick事件:

<button id="add-search-individual" type="button" class="btn btn-success" onclick="addSearch(this)">Add Search Individual</button>
以下是主视图中的所有js:

@section Scripts
    {
    <script>
    function add(element){
    var action = ' @Url.Action("NewIndividualSearchCharacteristic", "Default")';
    $.post(action)
        .done(function (partialView) {
            $(element).parents('#individual-details').find("#Characteristics").append('<div class="form-group">' + partialView + '</div>');
            ResetName();
    });
        }
        function addSearch(element){
    var action = ' @Url.Action("IndividualSearchCharacteristic", "Default")';
    $.post(action)
        .done(function (partialView) {
            $(element).parents('.mb-3').find('#searchindividuals').append('<div class="form-group search">' + partialView + '</div>');
            ResetName();
    });
        }

        function ResetName() {
            var index = 0;
            $(".search").each(function () {
                var nameIndex = 0; var valueIndex = 0;
                $(this).find(":input[type='hidden']").each(function () {
                    $(this).removeAttr("name");
                });
                $(this).find(":input[type='text']").each(function () {
                    if ($(this).attr("name").indexOf("Characteristics") > -1 && $(this).attr("name").indexOf("Name") > -1) {
                        $(this).attr("name", "IndividualSearches[" + index + "].Characteristics[" + nameIndex + "].Name");
                        nameIndex++;
                        return;
                    }
                    if ($(this).attr("name").indexOf("Characteristics") > -1 && $(this).attr("name").indexOf("Value") > -1) {
                        $(this).attr("name", "IndividualSearches[" + index + "].Characteristics[" + valueIndex + "].Value");
                        valueIndex++;
                        return ;
                    }
                    if ($(this).attr("name").indexOf("IndividualSearches") > -1) {
                        $(this).attr("name", "IndividualSearches[" + index + "].SearchPostcode");
                        return;

                    }
                });
                index++;
            })
        } 
    </script>
}
以下是测试结果:


是直接渲染局部视图,还是先单击按钮,然后显示局部视图?我想在单击按钮后显示。是直接渲染局部视图,还是先单击按钮,然后显示局部视图?我想在单击按钮后显示。谢谢,但是我在我的模型和BMRTestData中没有得到特征数据。@Upkar,在主视图中也有两个按钮。是否要单击这两个按钮分别添加不同的不带数据的局部视图?请详细说明。如果我单击“单个”按钮,它将打开单个局部视图,并在其中添加“特征”按钮“打开n个局部视图”,然后再次重复此操作,使另一个具有n个特征的单个局部视图。我想所有个人的特征数据部分根据个人。谢谢这个。您是否能够按个人获得所有特征的单独数据,因为当我输入我的特征数据并在模型特征类中设置断点时,它显示为null。@UC57,当您单击“提交”按钮时,您希望在操作中接收
BMRTestData
模型,该操作将获得当前视图中的所有数据,对吗?谢谢,但是我在我的模型和BMRTestData中没有得到特征数据。@Upkar,在主视图中也有两个按钮。是否要单击这两个按钮分别添加不同的不带数据的局部视图?请
@section Scripts
    {
    <script>
    function add(element){
    var action = ' @Url.Action("NewIndividualSearchCharacteristic", "Default")';
    $.post(action)
        .done(function (partialView) {
            $(element).parents('#individual-details').find("#Characteristics").append('<div class="form-group">' + partialView + '</div>');
            ResetName();
    });
        }
        function addSearch(element){
    var action = ' @Url.Action("IndividualSearchCharacteristic", "Default")';
    $.post(action)
        .done(function (partialView) {
            $(element).parents('.mb-3').find('#searchindividuals').append('<div class="form-group search">' + partialView + '</div>');
            ResetName();
    });
        }

        function ResetName() {
            var index = 0;
            $(".search").each(function () {
                var nameIndex = 0; var valueIndex = 0;
                $(this).find(":input[type='hidden']").each(function () {
                    $(this).removeAttr("name");
                });
                $(this).find(":input[type='text']").each(function () {
                    if ($(this).attr("name").indexOf("Characteristics") > -1 && $(this).attr("name").indexOf("Name") > -1) {
                        $(this).attr("name", "IndividualSearches[" + index + "].Characteristics[" + nameIndex + "].Name");
                        nameIndex++;
                        return;
                    }
                    if ($(this).attr("name").indexOf("Characteristics") > -1 && $(this).attr("name").indexOf("Value") > -1) {
                        $(this).attr("name", "IndividualSearches[" + index + "].Characteristics[" + valueIndex + "].Value");
                        valueIndex++;
                        return ;
                    }
                    if ($(this).attr("name").indexOf("IndividualSearches") > -1) {
                        $(this).attr("name", "IndividualSearches[" + index + "].SearchPostcode");
                        return;

                    }
                });
                index++;
            })
        } 
    </script>
}
[HttpPost]
        public IActionResult TestData(BMRTestData bMRTest)
        {
            return View();
        }