C#为什么在我使用updatepanel进行回发时,组件Angularjs会消失?

C#为什么在我使用updatepanel进行回发时,组件Angularjs会消失?,c#,asp.net,angularjs,webforms,updatepanel,C#,Asp.net,Angularjs,Webforms,Updatepanel,我在我的.aspx中有这段代码,它位于updatepanel中,事件Onclick中有一个触发器 <div id="componentdt" ng-app="myApp" ng-controller="MyCtrl" class="container" style="width: 100%"> <div rm-datepicker ng-model="oDate1" rm-config="rmConfig1"></div> <input type="hi

我在我的.aspx中有这段代码,它位于updatepanel中,事件Onclick中有一个触发器

<div id="componentdt" ng-app="myApp" ng-controller="MyCtrl" class="container" style="width: 100%">
<div rm-datepicker ng-model="oDate1" rm-config="rmConfig1"></div>
<input type="hidden" id="selectedPartnerId" runat="server" ng-value="oDate1 | date: 'dd-MM-yyyy'" />
</div>

这是我在.aspx中的脚本

<script>
        var app = angular.module("myApp", ["rmDatepicker"]);

        /* Datepicker global configuration */
        app.config(["rmDatepickerConfig", function (rmDatepickerConfig) {
            rmDatepickerConfig.mondayStart = true;
            rmDatepickerConfig.initState = "month";
        }]);
</script>

<script>

    $(document).ready(function () {

            var app = angular.module("myApp");

            var MyCtrl = function ($scope) {


                var currentDate = new Date();
                var date = currentDate.setDate(currentDate.getDate() + 1);

                /* Datepicker local configuration */
                $scope.rmConfig1 = {
                    mondayStart: false,
                    initState: "month", /* decade || year || month */
                    maxState: null,
                    minState: "month",
                    decadeSize: 12,
                    monthSize: 42, /* "auto" || fixed nr. (35 or 42) */
                    min: new Date(date),
                    max: new Date('2023-11-21'),
                    format: "yyyy-MM-dd" /* https://docs.angularjs.org/api/ng/filter/date */
                };

                $scope.rmConfig2 = { format: "d MMM yyyy" };

                $scope.oDate1 = new Date(date);
                $scope.oDate2 = null;
                $scope.clearInput = function () {
                    $scope.oDate2 = null;
                }
            };
            app.controller("MyCtrl", ['$scope', MyCtrl]);

        }());

        // Init waves (OPTIONAL) :)
        // window.onload = Waves.init();

</script>

var-app=angular.module(“myApp”,“rmDatepicker”);
/*日期选择器全局配置*/
app.config([“rmDatepickerConfig”,函数(rmDatepickerConfig){
rmDatepickerConfig.mondayStart=true;
rmDatepickerConfig.initState=“月”;
}]);
$(文档).ready(函数(){
var app=角度模块(“myApp”);
var MyCtrl=函数($scope){
var currentDate=新日期();
var date=currentDate.setDate(currentDate.getDate()+1);
/*日期选择器本地配置*/
$scope.rmConfig1={
周一开始:错,
初始状态:“月”/*十年|年|月*/
maxState:null,
明州:“月”,
十年:12,
月份:42,/*“自动”| |固定编号(35或42)*/
最小:新日期(日期),
最长:新日期('2023-11-21'),
格式:“yyyy-MM-dd”/*https://docs.angularjs.org/api/ng/filter/date */
};
$scope.rmConfig2={格式:“d MMM yyyy”};
$scope.oDate1=新日期(日期);
$scope.oDate2=null;
$scope.clearInput=函数(){
$scope.oDate2=null;
}
};
app.controller(“MyCtrl”[“$scope”,MyCtrl]);
}());
//初始波(可选):)
//window.onload=Waves.init();
嗯,当我回发时,这个组件消失了,我不知道为什么。
我从AngularJS和ASP.NET webforms开始,您不应该在更新面板中使用AngularJS。这毫无意义。Asp.net web表单是MVC的反模式,MVC将全部或部分html页面发送到服务器并返回在服务器上生成的html,而MVC技术仅从服务器请求数据并在客户端呈现数据

您应该了解MVC模式和web表单是如何工作的,以理解这些技术的概念,否则您将在将来面临更多的问题


为了解决您的问题,请不要在“更新”面板下使用“角度部分”。Angular能够将请求发送到服务器并更新页面的一部分。如果您正在使用Angular,只需保留Ajax控件。

您不应该在更新面板中使用Angular。这毫无意义。Asp.net web表单是MVC的反模式,MVC将全部或部分html页面发送到服务器并返回在服务器上生成的html,而MVC技术仅从服务器请求数据并在客户端呈现数据

您应该了解MVC模式和web表单是如何工作的,以理解这些技术的概念,否则您将在将来面临更多的问题

为了解决您的问题,请不要在“更新”面板下使用“角度部分”。Angular能够将请求发送到服务器并更新页面的一部分。如果您使用的是Angular,只需留下Ajax控件即可