C# 如何从C代码隐藏文件修改角度ng模型?

C# 如何从C代码隐藏文件修改角度ng模型?,c#,javascript,asp.net,angularjs,episerver,C#,Javascript,Asp.net,Angularjs,Episerver,问题是,如果我将指令ng模型添加到任何asp:TextBox中,那么我无法从代码隐藏文件中更改它们的值。ng模型绑定到vm.Company,我无法从代码隐藏中访问它。我会用javascript完成这一切,但我不知道如何在.NET之外获取EPiServerProfile.current 用户控件.ascx: <div class="container" data-ng-app="app"> <div data-ng-controller="membershipsettin

问题是,如果我将指令ng模型添加到任何asp:TextBox中,那么我无法从代码隐藏文件中更改它们的值。ng模型绑定到vm.Company,我无法从代码隐藏中访问它。我会用javascript完成这一切,但我不知道如何在.NET之外获取EPiServerProfile.current

用户控件.ascx:

<div class="container" data-ng-app="app">
    <div data-ng-controller="membershipsettingscontrol as vm" class="row">
        <div class="row">
            <div class="span4">
                <label for="txtCompanyName">Company Name:</label>
            </div>
            <div class="span8">
                <asp:TextBox runat="server" ID="txtCompanyName" data-ng-model="vm.Company" data-ng-disabled="false" />
            </div>
        </div>
     </div>
 </div>
app.js:

(function () {
    'use strict';
    var controllerId = 'membershipsettingscontrol';
    angular.module('app').controller(controllerId, ['$scope', '$location', 'datacontext.sbcountry', 'datacontext.sbstates', 'datacontext.sbcontact', admin]);

    function admin($scope, $location, sbcountrydatacontext, sbstatesdatacontext, sbcontactdatacontext) {
        var vm = this;
        vm.title = 'Job Add';

        vm.states = [];
        vm.Address = {};

        vm.getStates = getStates;
        vm.submit = submit;

        getCountries();
        pageLoad();

        function getCountries() {
            return sbcountrydatacontext.getCountries().then(function (httpResults) {
                vm.countries = httpResults.data.Countries;
            });
        }

        function getStates(country) {
            return sbstatesdatacontext.getStates(country).then(function (httpResults) {
                vm.states = httpResults.data.States;
            });
        }

        function submit(data) {
            return sbcontactdatacontext.updateContact(data);
        }


    }
})();

看起来你没有按预期的方式使用角度。通过测试回发,您已经恢复到webforms风格,而不是以ajax为中心的MVC。那么您对此有何建议?获取登录到EPiServerProfile的用户的当前配置文件。当前正迫使我使用隐藏的代码。您应该公开一个端点,以便使用。为此,您应该查看WebAPI。然后,您可以在angular中使用$http服务将JSON对象与用户配置文件详细信息一起拉回来,并在angular控制器中更新您的模型。
(function () {
    'use strict';
    var controllerId = 'membershipsettingscontrol';
    angular.module('app').controller(controllerId, ['$scope', '$location', 'datacontext.sbcountry', 'datacontext.sbstates', 'datacontext.sbcontact', admin]);

    function admin($scope, $location, sbcountrydatacontext, sbstatesdatacontext, sbcontactdatacontext) {
        var vm = this;
        vm.title = 'Job Add';

        vm.states = [];
        vm.Address = {};

        vm.getStates = getStates;
        vm.submit = submit;

        getCountries();
        pageLoad();

        function getCountries() {
            return sbcountrydatacontext.getCountries().then(function (httpResults) {
                vm.countries = httpResults.data.Countries;
            });
        }

        function getStates(country) {
            return sbstatesdatacontext.getStates(country).then(function (httpResults) {
                vm.states = httpResults.data.States;
            });
        }

        function submit(data) {
            return sbcontactdatacontext.updateContact(data);
        }


    }
})();