首页 > 解决方案 > 如何将数据从一个 Angularjs 控制器函数传递到局部视图?

问题描述

我有一个 main.cshtml,并在其中添加了一个局部视图,其中有一个下拉“commentrecipients”。当用户单击链接时,我需要将少量数据(SubmissionID 和 entityOrganizationID)发送到部分视图以填充下拉值。如何在加载时将数据从一个 angularjs 控制器功能发送到另一个控制器 cshtml/.js 以正确处理此部分视图?这可能很简单,但我是新手,你能帮忙吗?

Main.cshtml 视图中的部分视图 -

<div id="submissionCommentPartialViewDiv">
 @Html.Partial("_SubmissionCommentActions", new SubmissionHeaderActionViewModel());
</div>

链接在这里:

"<h7>" + "" + "<a href='DisplayCommentDialog' onclick=\"DisplayCommentDialog(" + SubmissionID + "," + EntityOrganizationID + "); return false;\">" + "Add Comment" + "</a><br></h7>" +
    

这是我的 Angular JS 控制器,我在其中向局部视图发送请求并打开一个模式。在这里我可以访问 SubmissionID、entityOrganizationID

ListSubmissionDashboard.js -

mainApp.controller('submissionDashboardController', ['$rootScope', '$http', '$scope', 'viewDataService', 'stateService', 'utilityService', function ($rootScope, $http, $scope, viewDataService, stateService, utilityService) {

    function DisplayCommentDialog(SubmissionID, entityOrganizationID) {
        var kendoWindow = $("#dialog").data("kendoWindow");
        kendoWindow.close();
    
        $("div.row.submission-header-title").css("display", "");
    
        $('#headerCommentModal').modal({
            show: true,
            backdrop: 'static',
            keyboard: false
        });
    }
}]);

部分视图:_submissionComment.cshtml。在这里,我需要访问 SubmissionID 和 EntityOrganizationID 并删除硬编码并重新加载 SubmissionHeaderActions.js 以填充commentrecipients 下拉列表。我该怎么做?

@model Foreside.AdCompliance.Domain.Model.Submission.SubmissionHeaderActionViewModel

@{
    // Here I need access to SubmissionID and EntityOrganizationID and remove these hardcoding. 
    var SubmissionID = 516;
    var EntityOrganizationID = 214;
    Model.EntitySubmissionID = 516;
    Model.EntityOrganizationID = 214;
}


<!-- _SubmissionHeaderActions  end  -->

@Html.Hidden("SubmissionHeaderID", SubmissionHeaderID, new { data_ng_model = "model.SubmissionHeaderID" })

@Html.JsonDataSourceVariable("securitygroupsusers", "SecurityGroupsUsersAccessRight", "Utility", Model.EntityOrganizationID.GetValueOrDefault())

<script>
    var dropdownlist = $("#commentrecipients").data("kendoDropDownList");
    dropdownlist.refresh();
</script>
<!-- _SubmissionHeaderActions  start  -->
<div class="stayenabledonclose">
    <div class="form-horizontal" ng-controller="submissionHeaderActionsController">
        <div id="headerCommentModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="submissionComment-title" style="padding-right:19px;">
            <div class="modal-dialog" role="document">
                <div id="adcmodal" class="modal-content">
                    <div id="adcmodal" class="modal-header col-nopadding ">
                        <h3 class="modal-title" id="submissionComment-title">Submission Comment | SubmissionID: @Model.SubmissionID | EntityOrganizationID : @Model.EntityOrganizationID</h3>
                        <button type="button" class="close pull-right" data-dismiss="modal" aria-label="Close">
                            <span aria-hidden="true"><i class="fas fa-times"></i></span>
                        </button>
                    </div>
                    <div class="modal-body submissioncomment-modal-body">
                        <div class="row form-group spacer">
                            <div class="col-md-12">
                                <div class="col-md-12">
                                    @Html.Label("Recipients")
                                    <select id="commentrecipients" class="dirtyignore" kendo-multi-select k-options="securitygroupsusersSelectOptions()"></select>
                                </div>
                            </div>
                        </div>

                        @Html.Hidden("SubmissionHeaderID", SubmissionHeaderID)
                        <div class="row form-group spacer">
                            <div class="col-md-12">
                                <div class="col-md-12">
                                    @Html.Label("Comment (will be sent to the recipients via email)")
                                    @Html.TextArea("Comment", "", new { @class = "form-control dirtyignore", rows = "2", maxlength = "1000", data_ng_model = "model.comment" })
                                </div>
                            </div>
                        </div>
                    </div>
                    <div id="adcmodal" class="modal-footer ">
                        <input type="button" id="Close" value="Close" class="adcmodal-button" data-dismiss="modal" aria-label="Close" />
                        <input type="button" id="Send" value="Send" class="adcmodal-button" ng-click="send(@Model.EntityOrganizationID)" />
                    </div>
                </div>
            </div>
        </div>
    </div>

    @if (Model.SubmissionID != 0)
    {
        @Html.SubmissionReassignmentActions(Model.SubmissionID) @* Submission.SubmissionReassignment  _SubmissionReassignment*@
    }

</div>

@using (Html.RequiredScripts())
{
    @Html.RequirePageScript("Submission", "ListSubmissionDashboard")
    @Html.RequirePageScript("Shared", "GridPersonalization")
    @Html.RequirePageScript("Shared", "SubmissionHeaderActions")
}

标签: angularjsasp.net-mvcmodal-dialogpartial-viewsasp.net-mvc-partialview

解决方案


推荐阅读