Передача одной модели с использованием tupple при редактировании с контроллера для просмотра - PullRequest
0 голосов
/ 19 сентября 2019

Я использовал Tuple для загрузки двух моделей на мой взгляд.один div - добавить новые данные с помощью кнопки отправки.другой div - это сетка со списком всех данных.

Теперь появилась функция редактирования.если я нажму на правку в сетке, в первом элементе отобразятся соответствующие данные, но во втором элементе, имеющем сетку, обновления не произойдет.

Просмотр

     @model Tuple<CashBoxUI.Models.DocumentModel,     IEnumerable<CashBoxUI.Models.DocumentModel.DocumentDetailsModel>>
<div id="documenttype" class="panel-collapse collapse collapse">
<div class="panel-body row no-margin padding-top-bottom-10">

Тип документа: @ Html.DropDownListFor (model => model.Item1.DocumentTypeCode, Model.Item1.DocTypes, "Выбрать тип документа", новый {@class = "form-control", id = "ddlDocTypes", @onchange = "FillRefType () "})

                                        </div>
                                        <div class="col-lg-2 no-padding" style="margin-top:0.5%">
                                            @Html.ValidationMessageFor(x => x.Item1.DocumentTypeCode, "", new { @class = "text-danger", id = "ddlDocTypesError" })
                                        </div>
                                        <div class="col-lg-1" style="float:right">
                                            <button type="button" style="margin-left:10%" class="button-large button-blue" data-toggle="collapse" id="btnDocType" data-target="#documentmetadata">NEXT</button>
                                        </div>
                                        <div id="OPTY" class="row">

                                                <div class="col-lg-3 divtblrow"> Opportunity ID</div>
                                                <div class="col-lg-5 divtblrow" style="padding:0px !important">
                                                    @Html.DropDownListFor(model => model.Item1.OpportunityCode, Model.Item1.Opportunity, "Select Reference Name", new { @class = "form-control", style = "border: 1px solid darkgrey;padding-left: 5px;", id = "ddlOpportunity", @onchange = "FillDocName()", @disabled = "disabled" })
                                                </div>
                                                <div>
                                                    @Html.ValidationMessageFor(x => x.Item1.OpportunityCode, "", new { @class = "text-danger", id = "ddlOpportunityError" })
                                                </div>
                                            </div>
                                            <div class="col-lg-1" style="float:right">
                                            <input type="submit" style="margin-left:10%" class="button-large button-blue" id="btnUpload" value="SAVE" />
                                        </div>
                                    </div>
                                </div>
    <div id="documentlist" class="panel-collapse collapse collapse">
            <div class="col-lg-12 margin-top-10" style="margin-left:1%">
                <input class="button-large button-blue" id="missing-rate" type="button" value="Missing Rates" />
            </div>

            <div class="panel-body row no-margin padding-top-bottom-10">

                <div class="col-lg-12 margin-top-10">
                    <div class="col-lg-12 no-padding table no-margin" id="document-list">

                            @Html.Grid(Model.Item2).Columns(columns =>
                            {
                               //columns.Add().Titled("").Encoded(false).Sanitized(false).SetWidth(30).RenderValueAs(c => Html.RadioButton("selecteddocumentId", false, new { name = "selecteddocumentId", @class = "center-text", value = c.DocumentGUID, onClick = "UpdateProcess('" + c.DocumentGUID + "');" }));
                               columns.Add().Titled("").Encoded(false).Sanitized(false).RenderValueAs(model => "<a title='Tasks' class='center-text' href=\"javascript:void(0);\" onclick=\"return ShowTasks('" + model.DocumentGUID + "');\"><i class='fa fa-tasks' aria-hidden='true'></i></a>");
                               columns.Add().Titled("").Encoded(false).Sanitized(false).RenderValueAs(model => "<a class='center-text' href=\"javascript:void(0);\" onclick=\"return EditDocument('" + model.DocumentGUID + "');\"><i class='fa fa-pencil' aria-hidden='true'></i></a>");
                               columns.Add(c => c.FileName).Titled("Document Name").RenderValueAs(model => model.FileName).Filterable(true).Sortable(true).Encoded(false).Sanitized(false);
                               columns.Add(c => c.DocumentType).Titled("Document Type").Sortable(true).Filterable(true).Sanitized(false).Encoded(false);
                               columns.Add(c => c.ValidFrom).Titled("Valid From").Sortable(true).Format("{0:yyyy-MM-dd}").Filterable(true).Sanitized(false).Encoded(false);
                               columns.Add(c => c.ValidTo).Titled("Valid To").Sortable(true).Format("{0:yyyy-MM-dd}").Filterable(true).Sanitized(false).Encoded(false);
                               columns.Add(c => c.CreateTimestamp).Titled("Upload Date").Sortable(true).Format("{0:yyyy-MM-dd}").Filterable(true).Sanitized(false).Encoded(false);
                               columns.Add(c => c.CreateUserId).Titled("Uploaded By").Sortable(true).Filterable(true).Sanitized(false).Encoded(false);
                           }).WithPaging(15).EmptyText("No documents found")

                    </div>
                </div>
            </div>
    </div>

JavaScript

function EditDocument(param) {



    $.ajax({
        type: "GET",
        url: "/DocumentStorage/GetDocumentDetailsByGUID?DocumentID=" + param,
        success: function (data) {
            $('#documenttype').html(data);

        },
        error: function () {
            $('#docStorageError').removeClass('hide');
            $('.message #docStorage').text('');
            $('.message #docStorage').text('Edit document - Data load failed');
            //alert("editDocuments - Data Load Failed.");
            return false;
        }
    });

Контроллер

 public async Task<ActionResult> GetDocumentDetailsByGUID([string DocumentID)
    {
           string url = string.Empty;
        var editdocModel = new DocumentModel();

        editdocModel.GUID = docModel.GUID;
        editdocModel.DocumentTypeCode = docModel.DocumentTypeCode;
                   editdocModel.CreateUserId = docModel.CreateUserId;
        editdocModel.CreateTimestamp = docModel.CreateTimestamp;
        editdocModel.Owner = docModel.Owner;
        editdocModel.documentReferences = docModel.documentReferences;



       return PartialView("UploadDocument", Tuple.Create<DocumentModel, IEnumerable<DocumentModel.DocumentDetailsModel>>(editdocModel, editdocModel.DocDetailsModel));

    }

Я не уверен в части контроллера, как обновить только первый DIV с выбраннымданные из сетки.

Заранее спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...