之前看了寫的httpclient+webapi的乙個例子,參考他的**子階寫了乙個,結果請求服務獲取的引數都是空的,而將引數繫結在url中則可以正常得到引數,折騰好久,終於在網上找到了相關資料,原來rc版webapi在引數繫結上發生了些變化。
rc版的webapi引數繫結器分為兩種:
1.model binding
2.formatters
其中model binding僅從url中取值,這點是與mvc的model binding有區別的,
formatters是從request的body中取值,並且是把整個body作為乙個(不可為多個)物件解析為乙個引數。
/?id=123&name=bob void action(int id, string name) // 兩個引數都是基本型別,則從url中獲取
/?id=123&name=bob void action([fromuri] int id, [fromuri] string name) // 標記為fromuri的引數從url中獲取.
void action([frombody] string name); // 標記為frombody的引數從request的body中取值.
public class customerpublic int age
}
/?id=123 void action(int id, customer c) // id 從url獲取, c 是乙個自定義型別,從request的body中取值.
void action(customer c1, customer c2) // 這樣的寫法是錯誤的,從request的body中取值的引數只能有乙個
void action([fromuri] customer c1, customer c2) // 這樣是正確的, c1 從url獲取 、 c2 從request的body中取值
void action([modelbinder(mycustombinder)] sometype c) //指定乙個明確的模型繫結器使用來建立引數.
// 位置屬性型別宣告應用於所有的引數例項[modelbinder(mycustombinder)]
public class sometype
void action(sometype c) // c的型別指定使用model binding.
到此,已經明白為什麼rc版下服務獲取引數為空了,也知道如何處理了。
alpha版 beta版 rc版的意思
很多軟體在正式發布前都會發布一些預覽版或者測試版,一般都叫 beta版 或者 rc版 特別是開源軟體,甚至有 alpha版 下面來解釋一下各個版本的意思。stable版 穩定版。在開源軟體中,都有stable版,這個就是開源軟體的最終發行版,使用者可以放心大膽的用了。另外,對於商業軟體,還有一下版本...
alpha版 beta版 rc版的意思
很多軟體在正式發布前都會發布一些預覽版或者測試版,一般都叫 beta版 或者 rc版 特別是開源軟體,甚至有 alpha版 下面來解釋一下各個版本的意思。stable版 穩定版。在開源軟體中,都有stable版,這個就是開源軟體的最終發行版,使用者可以放心大膽的用了。另外,對於商業軟體,還有一下版本...
alpha版 beta版 rc版的意思
很多軟體在正式發布前都會發布一些預覽版或者測試版,一般都叫 beta版 或者 rc版 特別是開源軟體,甚至有 alpha版 下面來解釋一下各個版本的意思。stable版 穩定版。在開源軟體中,都有stable版,這個就是開源軟體的最終發行版,使用者可以放心大膽的用了。另外,對於商業軟體,還有一下版本...