2016-03-31 23 views
0

我想公開一下我的POST方法,允許用戶使用請求主體內寫入的url 編碼的參數調用它。僞代碼:在MVC中使用FromUri或FromBody 5

public HttpResponseMessage MyMethod([FromUri, FromBody] parameters) 
{ 
    //.. 
} 

它通過暴露方法甚至是不可能的:

public HttpResponseMessage MyMethod([FromUri] parameters) 
public HttpResponseMessage MyMethod([FromBody] parameters) 

因爲它們具有相同的簽名。如何以簡單的方式實現這一點?

回答

2

你不能開箱即用;如果你嘗試同時使用這兩個屬性,你會得到這個很好的錯誤:無法綁定參數'xxx',因爲它具有衝突的屬性。

兩個可能的解決方案:

  1. 使用兩種不同的方法,但是有兩個不同的動詞(一個送,一個崗爲例) - 簡單的方法
  2. 只能使用[FromUri]和使用自定義操作過濾器(如this)來檢查正文內容,如果存在,則手動解析並將其綁定到正確的方法參數 - 不是那麼簡單的方法,但更強大。

希望它有幫助:)

相關問題