2014-11-22 16 views
0

空我在angularJS工廠代碼:MVC:AngularJS公佈的數據是在cotroller

myFactory.addNC = function (n) { 
     return $http.post('/api/addNC/', { c: n }).then(function (data) { 
      return data; 
     }); 
    } 

MVC ApiController:

[HttpPost] 
public void addNC([FromUri]string c = null) 
{ 
    ... 
} 

但 'C' 參數是空的,爲什麼?我在FireBug看到價值被張貼。

此外,如果我聲明像public void addNewCat([FromUri]string c)這樣的參數,我會收到404錯誤 - 爲什麼?

+0

難道您不希望'[FromBody]'用於POST嗎? – Clive 2014-11-22 11:54:28

+0

然後我得到500錯誤:發生了錯誤。「,」ExceptionMessage「:」'FormatterParameterBinding'不支持可選參數'c'。「,」ExceptionType「:」System.InvalidOperationException – Tony 2014-11-22 12:01:14

+0

哦,它只是一個字符串。嘗試完全刪除屬性 – Clive 2014-11-22 12:03:03

回答

1

基本上你期望的是角js $ http.post的行爲像jQuery.ajax()。事實並非如此,因爲jquery.ajax使用contentType = x-www-form-urlencoded進行傳輸,而angular始終使用contentType = application/json進行傳輸。我會查看你的API並檢查是否可以傳輸帶有內容類型json的請求。瀏覽器還有一些附加組件可用於實現此目的。您還可以通過確保Angular的$ http.post像擴展它的jquery.ajax調用一樣來解決此問題。請參閱以下link以瞭解詳細信息

相關問題