#c# #asp.net #asp.net-mvc #asp.net-mvc-4
Вопрос:
В моем приложении в режиме РЕДАКТИРОВАНИЯ я хочу вызвать данные из базы данных и заполнить частичное представление, которое было отправлено в базу данных при создании запроса с использованием того же частичного представления . В настоящее время мой код я написал, как показано ниже. Но что происходит, если есть 4 записи, он создаст 4 строки, но там нет данных. Все приходит как пустое.
lt;ul id="RequItms" style="list-style-type: none"gt; @if (Model != null amp;amp; Model.GeneralItmsList != null) { foreach (var item in Model.GeneralItmsList) { Html.RenderAction("GeneralItmsPartialView", "AppRequests", Model.GeneralItmsList.ToList()); } } lt;/ulgt;
Вот такой вид. Это представление, которое я в настоящее время получаю из приведенного выше кода.
Но именно так он должен загружаться в эти пустые поля.
Я проверил Model.GeneralItemsList
, что там отображаются данные, но я думаю, что при их разборе на частичное представление должна быть ошибка.
Вот как выглядит код частичного представления.
@model Asp_PASMVC.Models.GeneralItms @using Asp_PASMVC.Infrastructure lt;li style="padding-bottom:15px"gt; @using (Html.BeginCollectionItem("GeneralItmsList")) { @Html.HiddenFor(model =gt; model.TempID) lt;div class="form-horizontal" id="quickForm" novalidate="novalidate"gt; @Html.ValidationSummary(true, "", new { @class = "text-danger" }) lt;div class="row"gt; lt;div class="col-md-5 col-sm-6"gt; lt;div class="form-group"gt; Select Item Description lt;div class="col-md-10"gt; @Html.EditorFor(model =gt; model.Attachment_Description, new { htmlAttributes = new { @class = "form-control" } }) @Html.ValidationMessageFor(model =gt; model.Attachment_Description, "", new { @class = "text-danger" }) lt;/divgt; lt;/divgt; lt;/divgt; lt;div class="col-md-3 col-sm-6"gt; lt;div class="form-group"gt; Attachment Amount lt;div class="col-md-10"gt; lt;div class="input-group-prepend"gt; lt;span class="input-group-text"gt;Rs.lt;/spangt; @Html.EditorFor(model =gt; model.Attachment_Amount, new { htmlAttributes = new { @class = "form-control" } }) lt;/divgt; @Html.ValidationMessageFor(model =gt; model.Attachment_Amount, "", new { @class = "text-danger" }) lt;/divgt; lt;/divgt; lt;/divgt; lt;div class="col-md-3 col-sm-6"gt; lt;div class="form-group"gt; Attachment lt;div class="col-md-10"gt; lt;input type="file" name="ImageData@(Model.TempID.ToString())" id="ImageData@(Model.TempID.ToString())" multiple="multiple" data-id="Img@(Model.TempID.ToString())" onchange="checkImage(this)" /gt; @Html.ValidationMessageFor(model =gt; model.Attachment, "", new { @class = "text-danger" }) lt;/divgt; lt;/divgt; lt;img id="Img@(Model.TempID.ToString())" src="" alt="" width="100" height="100" class="ml-1" /gt; lt;/divgt; lt;button type="button" class="btn btn-danger" onclick="$(this).parent().remove();"gt;Removelt;/buttongt; lt;/divgt; lt;/divgt; } lt;/ligt;
Я надеюсь, что правильно объяснил этот вопрос. Спасибо за поддержку.
Комментарии:
1. Конечно, вы должны перейти
item
кRenderAction
вызову? И для просмотра нужно просто взять один «общий пункт»?2. Или удалите
foreach
цикл из родительского представления.3. Кроме того, что такое
Html.BeginCollectionItem
?4. @DavidG Я попытался удалить
foreach
, но когда это происходит, он генерирует только 1 строку без данных. Html.BeginCollectionItem он использовался, когда в представлении «СОЗДАТЬ» я вставил кнопку. Поэтому, когда пользователь нажимает эту кнопку, затем загружает частичное представление. Это такой код « «5.
foreach (Asp_PASMVC.Models.GeneralItms Itms in Model.GeneralItmsList) { Html.RenderPartial("_GeneralItms", Itms); }