【问题标题】:Passing parameter from angular js for a POST web api method从角度 js 传递参数以用于 POST web api 方法
【发布时间】:2015-07-15 09:20:35
【问题描述】:

我使用了上传控件的示例代码。

来自 angularJs 控制器的 Web API 调用如下所示

var uploader = $scope.uploader = new FileUploader({
    url: window.location.protocol + '//' + window.location.host + '/api/FileUpload/UploadFile',
    data:{seldocType:"1"}
});

post WEB api方法是

    [System.Web.Http.HttpPost]
    public IHttpActionResult UploadFile(string seldocType)
    {..}

在浏览器中,FileUploader obj 有以下信息和其他信息

 data: Object ->seldocType: "1"
method: "POST"
url: "http://localhost:90/api/FileUpload/UploadFile"

如果我删除 seldocType 参数(在 API 和控制器中),调用工作正常。 当我尝试添加此参数时,不会发生 api 调用。 我假设我没有以正确的方式传递参数。你能帮忙吗?

谢谢

【问题讨论】:

    标签: angularjs http-post asp.net-web-api2


    【解决方案1】:

    你需要有一个对象作为你的 post 方法参数而不是字符串。

    首先创建一个以seldocType 为属性的类,并将该类保留为您的 post 方法的参数。

    Class Document { public string SeldocType {get;set;} }
    

    现在在你的 post 方法中使用这个类作为参数

    [System.Web.Http.HttpPost]
    public IHttpActionResult UploadFile(Document document)
    {..}
    

    POST 方法以对象类型为参数。

    【讨论】:

    • 谢谢,数据仍会作为数据传递:{seldocType:"1"} 正确吗?
    • 是的。您的客户端调用没有问题。
    • 正如您在浏览器中看到的,data: Object ->seldocType: "1" 数据本身作为对象类型传递给服务器。
    • [System.Web.Http.HttpPost] public IHttpActionResult UploadFile(VMSelectedDocument selectedDocument) {..}
    • 在不同的类文件中,public class VMSelectedDocument { public string seldocType { get;放; } }
    猜你喜欢
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多