将Angular js API与ASP.net webForms一起使用

时间:2014-10-27 06:32:17

标签: asp.net asp.net-mvc angularjs asp.net-web-api asp.net-web-api-routing

我正在使用带有Asp.net webforms的角度js。我想使用angular js API从数据库中检索数据。我在google或任何教程中看到的所有内容都使用了带有Asp.net MVC的angular js API。

我的问题是:我们可以在Asp.net网络表单中使用angular js API吗?

如果是,那么方法将与Asp.net MVC中的相同?

此外,我知道角度js适用于SPA(单页应用程序),它有模型视图和控制器。

2 个答案:

答案 0 :(得分:8)

是的,你可以。

但我真的真的不推荐它。确保他们没有踩到彼此的脚趾可能非常困难,因为他们都通过增强HTML来工作。

我的建议是,您开始将业务逻辑从Web表单代码移到Service类中,以便您可以通过[WebMethods]公开业务逻辑。您可以添加WebMethods to the pages,但如果您可以使用WebAPI添加REST Web服务端点,那会更好。

将角度SPA视为完全独立于服务器技术,Angular与服务器一起工作所需的只是一个HTTP API,最好是返回JSON的API。

答案 1 :(得分:0)

您好,您可以使用网页表单角度,您也可以通过角度使用$ HTTP服务来执行单页面应用程序。 我使用网络表单编写了一个ajax调用。

<script type="text/javascript" ><src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
<script type="text/javascript">
    var app = angular.module('MyApp', [])
    app.controller('MyController', function ($scope, $http, $window) {
        $scope.ButtonClick = function () {
            var post = $http({
                method: "POST",
                url: "Default.aspx/GetCurrentTime",
                dataType: 'json',
                data: { name: $scope.Name },
                headers: { "Content-Type": "application/json" }
            });

            post.success(function (data, status) {
                $window.alert(data.d);
            });

            post.error(function (data, status) {
                $window.alert(data.Message);
            });
        }
    });
</script>
<div ng-app="MyApp" ng-controller="MyController">
    Name:
    <input type="text" ng-model="Name" />
    <br />
    <br />
    <input type="button" value="Submit" ng-click="ButtonClick()" />
</div>