1

我有一個Angular 2代碼示例如下。Angular 2 HTTP發佈到Web API沒有[FromBody]

this.headers = new Headers({ 'Content-Type': 'application/json' }); 
this.options = new RequestOptions({ headers: this.headers }); 
this.http.post('/api/todo/create', JSON.stringify(todo), this.options); 

我也有,如下圖所示(ASP.NET核心)的API動作

[HttpPost] 
[Route("create")] 
public IActionResult Create([FromBody] Todo todo) 
{ 
    return this.Ok(); 
} 

此代碼的工作,但我不希望看到對參數的[FromBody]屬性舒服。我知道,對於Post請求,MVC從正文中讀取它。但是,我之前一直在使用AngularJS中的Restangular,並且參數對象被髮送到沒有[FromBody]屬性的API。

有沒有辦法將對象傳遞給API操作而不使用[FromBody]屬性或讀取請求的內容,然後將其反序列化爲對象?

+0

什麼你Restangular/Angular1使用的HTTP請求?我會說:在POST請求中發送數據到負載中是最好的方法。另一種可能的選擇是使用查詢參數,但我不太喜歡這個選項... –

+0

'[FromBody]'有什麼問題? –

+0

沒什麼。這只是我不習慣它,我很好奇爲什麼角2不能做什麼restangular可以。我想我只會研究它是如何做到的 –

回答

1

我認爲使用POST方法的有效載荷是你應該做的發送數據到服務器。你可以選擇你想要的內容類型(JSON,URL編碼形式,...)。

也就是說,Angular2 HTTP支持是低級別的。我的意思是沒有REST的高級API。你需要自己設置標題,選擇你想使用的HTTP方法......我不會在Angular2中找到類似Restangular的東西。

此鏈接可以幫助你: