ich eine Teilansicht, die in meiner Hauptansicht mit diesem CodeDynamische Teilansicht Liste aufgenommen nicht zu werden, wenn
<div>
<h3>Budget Detail</h3>
<div><input type="button" id="addbudgetdetail" value="Add row" /></div>
<div id="new-budgetdetail">
@if (Model.budget != null)
{
foreach (var budgetdetail in Model.budget.budgetdetails)
{
@Html.Partial("budgetdetail", Model)
}
}
else
{
@Html.Partial("budgetdetail", Model)
}
</div>
</div>
Es gerendert wird ein Java-Script ist mehr Teilansichten dynamisch hinzuzufügen, wenn Klicken auf eine Schaltfläche
$(function() {
$('#addbudgetdetail').on('click', function() {
jQuery.get('@Url.Action("budgetdetail")').done(function (html) {
$('#new-budgetdetail').append(html);
$('form').data('validator', null);
$.validator.unobtrusive.parse($('form'));
});
});
});
Dies ist meine Teilansicht:
@model BudgetPortalMVC4.Models.NewBudgetModel
@{
Layout = null;
}
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
@using (Html.BeginCollectionItem(""))
{
@Html.ValidationSummary(true)
<div class="item">
<table>
<tr>
<td>
@Html.LabelFor(m => m.SelectedCategory)
@Html.DropDownListFor(m => m.SelectedCategory, Model.CategoriesList, "Please select", new { @class = "SelectedCategory" })
@Html.ValidationMessageFor(m => m.SelectedCategory)
</td>
<td>
@Html.LabelFor(m => m.SelectedSubCategory)
@Html.DropDownListFor(m => m.SelectedSubCategory, Model.SubCategoriesList, "Please select", new { @class = "SelectedSubCategory" })
@Html.ValidationMessageFor(m => m.SelectedSubCategory)
</td>
<td>
@Html.LabelFor(model => model.budgetdetail.Amount)
@Html.EditorFor(model => model.budgetdetail.Amount)
@Html.ValidationMessageFor(model => model.budgetdetail.Amount)
</td>
<td><a href="#" id="deleteRow" class="deleteRow">Delete</a</td>
</tr>
</table>
</div>
}
Mein Problem ist, wenn ich mich einreichen klicken sehe keine Liste für meine Teilansichten. Ich kann nur die Daten sehen, die direkt von meiner Hauptansicht kommen.
Fehle ich irgendwo eine IEnumerable-Eigenschaft? Soll ich stattdessen Editor-Vorlagen verwenden?
Sie können ein 'EditorTemplate' nicht mit' BeginCollectionItem() 'verwenden. Und entferne die Skripte von deinen partails. Deine "foreach" -Schleife macht keinen Sinn - ich nehme an, sie soll '@ Html.Partial (" budgetdetail ", budgetdetail) heißen, aber das" else "würde eine Ausnahme auslösen, wenn es so weit gekommen wäre –