【发布时间】:2022-01-24 09:39:30
【问题描述】:
这是我在 stackoverflow 上的第一个问题。呵呵。
我有一个编辑页面,我需要显示所有现有字段,我有一个添加按钮,我可以添加一个新字段。
这里是显示数据的编辑源代码(Edit.cshtml)
<div class="nutrition-field">
@for (int i = 0; i < Model.NutritionFacts.Count(); i++ )
{
<div class="nutrition-div form-group row">
<div class="col-lg-4">
<label>Nutrients name</label>
<input type="text" class="nutrients-name form-control" asp-for="@Model.NutritionFacts.ToList()[i].NutritionName">
<span asp-validation-for="@Model.NutritionFacts.ToList()[i].NutritionName" class="text-danger"></span>
</div>
<div class="col-lg-4">
<label>Per 100g</label>
<input type="text" class="gram form-control" asp-for="@Model.NutritionFacts.ToList()[i].Gram">
<span asp-validation-for="@Model.NutritionFacts.ToList()[i].Gram" class="text-danger"></span>
</div>
<div class="col-lg-4">
<label>% Daily value</label>
<div class="d-flex">
<input type="text" class="percentage-value form-control mr-5 w-50" asp-for="@Model.NutritionFacts.ToList()[i].PercentageDailyValue">
<span asp-validation-for="@Model.NutritionFacts.ToList()[i].PercentageDailyValue" class="text-danger"></span>
<a href="javascript:void(0)" class="delete-btn btn btn-fixed-height btn-secondary font-weight-bold font-size-sm px-8">
Delete
</a>
</div>
</div>
</div>
}
</div>
这是添加按钮的javascript:
$(addNutrition).click(function() {
$.ajax({
url: "/Product/AddNutrition",
cache: false,
success: function (html) {
$('.nutrition-field').append(html)
}
});
});
当您单击按钮时,它将转到控制器,这里是添加营养控制器的代码:
public IActionResult AddNutrition()
{
return PartialView("~/Views/Product/PartialViews/_AddNutrition.cshtml", new ProductNutritionFactsDto());
}
这是部分视图:
@model ProjectName.Dto.ProductNutritionFactsDto
<div class="nutrition-div form-group row">
<div class="col-lg-4">
<label>Nutrients name</label>
<input type="text" class="nutrients-name form-control" asp-for="NutritionName">
<span asp-validation-for="NutritionName" class="text-danger"></span>
</div>
<div class="col-lg-4">
<label>Per 100g</label>
<input type="text" class="gram form-control" asp-for="Gram">
<span asp-validation-for="Gram" class="text-danger"></span>
</div>
<div class="col-lg-4">
<label>% Daily value</label>
<div class="d-flex">
<input type="text" class="percentage-value form-control mr-5 w-50" asp-for="PercentageDailyValue">
<span asp-validation-for="PercentageDailyValue" class="text-danger"></span>
<a href="javascript:void(0)" class="delete-btn btn btn-fixed-height btn-secondary font-weight-bold font-size-sm px-8">
Delete
</a>
</div>
</div>
</div>
它正在工作,但我希望它位于 for 循环内,这样索引的计数将继续进行,并且它将具有唯一的 ID。正在发生的事情是它正在创建一个新模型,并且在添加许多字段时验证不起作用。
非常感谢大家的帮助。谢谢!
【问题讨论】:
标签: javascript asp.net asp.net-mvc asp.net-core razor