C# 将另一个模型绑定到局部视图,如嵌套局部视图绑定
我有一个添加individualSearch局部视图的按钮,individualSearch局部视图也有一个添加按钮,在其中添加individualSearcharacteristic局部视图。 我想将BMRTestData模型与individualSearch partial绑定,以便获得具有特征的部分视图数据。因此,我将该数据存储在IndividualSearch的列表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
公共列表特征{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();
}