2016-12-04 70 views
2

我需要在現有的舊網站(WebForms/Umbraco 4)上使用Angular 1.5的幫助。舊WebForms上的AngularJS

GET工作

C#

public class MyController : ApiController 
{ 
    [System.Web.Http.HttpGet] 
    public string Test(int id) 
    { 
     return "ok"; 
    } 
} 

JS

$http.get("/api/My/Test?id=1"); 

但POST不起作用

C#

public class MyController : ApiController 
{ 
    [System.Web.Http.HttpPost] 
    public string Test(int id) 
    { 
     return "ok"; 
    } 
} 

JS

$http.post("/api/My/Test", {id: 1}); 

沒有HTTP資源發現匹配的請求URI 'http://localhost:8431/api/My/Test'。


如何使它與POST一起工作?

回答

0

這是我最後做的是解決

[System.Web.Http.HttpPost] 
public string Test() 
{ 
    string jsonStr = Request.Content.ReadAsStringAsync().Result; 
    dynamic data = JObject.Parse(jsonStr); 
    var id = data.id.Value; 
    return "ok"; 
} 
1

您將id作爲請求主體的一部分傳遞,因此您需要將其定義爲這樣。

嘗試

public class MyController : ApiController 
{ 
    [System.Web.Http.HttpPost] 
    public string Test([FromBody] int id) 
    { 
     return "ok"; 
    } 
} 

通知的屬性的方法聲明爲測試()

+0

謝謝Joniff的問題!我仍然無法使它工作 >參數字典中包含'MyController'中方法'System.String Test(Int32)'的非空類型'System.Int32'的參數'id'的空項。 – Aximili