javascript - 从 AngularJS 客户端发布到 ASP.NET WebApi 服务器

标签 javascript c# angularjs asp.net-web-api

我正在尝试从 AngularJS 应用程序(使用 $http)向构建在 ASP.NET WebApi 上的服务器发布字符串,但我在添加参数后立即收到 404。

客户端代码是这样的

$scope.add = function () {
    // ...cut...
    $http({ method: "POST", url: url, data: { fileString: "test string" }}).then(
        function successCallback(response) {
            $log.info(response.data);
        }
    );
}

服务器代码是

[HttpPost]
public IHttpActionResult UploadExcel(string fileString) {
    // cut
}

我得到一个 404,但是如果我在服务器端删除参数它就可以工作,所以我可以使用这样的服务器端代码

[HttpPost]
public IHttpActionResult UploadExcel() {
    // cut
}

怎么了?我应该以不同的方式传递数据吗?我尝试了不同的组合,但无法正常工作。

最佳答案

您想要做的是发送一个字符串,而不是像您现在使用 { fileString: "test string"} 那样发送一个 JSON 对象。当我想发送一个字符串时,我通常会像这样从 Angular 发送数据:

$http.post("/Search/QuickSearch?searchQuery="+ searchString);

我的 Controller 准备好接收这样的字符串:

[HttpPost]
public IHttpActionResult QuickSearch(string searchQuery)
{
    // cut
}

如果我想发送一个 JSON 对象,我会告诉我的 Controller 它应该期待什么,就像这样:

[HttpPost]
public IHttpActionResult SaveActivity(ActivityEditForm form);
{
    // cut
}

public class ActivityEditForm
{
    public int? Id { get; set; }
    [Required]
    public string Title { get; set; }

    public string Description { get; set; }
}

然后像这样从 Angular 发送我的 JSON:

$http.post("/Activity/SaveActivity", { form: activity });

关于javascript - 从 AngularJS 客户端发布到 ASP.NET WebApi 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34746535/

相关文章:

c# - C# 的免费或开源图表组件?

javascript - 如何使用axios发送授权 header

javascript - 如何使用 jQuery 使用 chrome 控制台以给定的时间间隔单击按钮?

javascript - 为什么 md-calendar 指令初始化为错误的日期 AngularJS?

c# - 协变对象初始值设定项?

c# - 通过接口(interface)访问对象

javascript - 变量的 Markdown 预格式化固定宽度代码块语言

javascript - AngularJS ng 单击多次调用

angularjs - 从指令更新范围变量

c# - 带有导航属性的 BreezeJS 查找