【问题标题】:Calling an MVC controller from an AngularJS directive从 AngularJS 指令调用 MVC 控制器
【发布时间】:2016-01-25 19:44:48
【问题描述】:

我正在上传一个文件,并且我在 MVC 控制器中为该文件提供了验证逻辑。这个附加过程可以在整个应用程序中使用;因此,我需要一个指令。

我希望能够(一旦我点击上传按钮)从 Angular 指令调用 MVC 控制器,最终将文件发送到 Web 服务。

谁能告诉我如何做到这一点?

我希望能够在我的指令中使用如下代码:

$http.post(ajaxUrl)
.success(function (status) {
    if (status.Succeed) {
        alert('file uploaded'
    }
    else {
        alert(status.ErrorResult);
    }
}

【问题讨论】:

  • 将 MVC 服务器端调用放入 Angular 服务中。将此服务注入您的指令中。
  • Jasen,刚接触 Angular,你能给我一些代码示例吗?
  • 考虑在自定义指令中包装更高级的内容,例如 angular-file-upload,将上传指向您的服务。这样可以提供更丰富的上传进度条和拖放上传体验。
  • Andreas,我已经有一个 html 文件,其中包含一个可供浏览的输入文件和一个上传按钮。这就是我所需要的......

标签: angularjs asp.net-mvc-4


【解决方案1】:

您是否考虑过为您的指令创建和注入服务?

(function () {
    'use strict';

    angular
        .module('app')
        .factory('service', service);

    function service($http) {
        var url = 'url';

        var service = {
            add: add
        };

        return service;

        function add(data, callback, errorCallback) {
            $http({
                method: 'POST',
                url: url,
                data: data
            })
            .success(function (data, status, headers, config) {
            })
            .error(function (data, status, headers, config) {
            });
        };
    }
})();

指令中的服务调用

service.add(data, function (status) {
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    相关资源
    最近更新 更多