我有一個(gè)帶有 PHP 文檔的第三方 API,但我使用的是 C# 和 ASP.NET MVC。API 方法之一作為參數(shù)發(fā)送Fields。FIELDS是一個(gè)數(shù)組,其中包含ID存儲(chǔ) int 值的字段。所以在 PHP 中它會(huì)是這樣的:$fields=array(ID=>4);在 C# 中將此類參數(shù)獲取到控制器方法的最佳方法是什么?我這樣做是這樣的:public class FieldsModel{ public int ID { get; set; }}[HttpPost]public string Test(FieldsModel[] FIELDS){ //some code goes here}此代碼有效,但也許有更好的解決方案將 PHP 命名數(shù)組映射到 C# 控制器參數(shù)?PS 實(shí)際上,F(xiàn)IELDS如果重要的話,數(shù)組總是只包含一個(gè) ID。
1 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
由于 php 數(shù)組可以用作 key,value 數(shù)據(jù)結(jié)構(gòu),當(dāng)它序列化為 JSON 時(shí),你會(huì)得到類似的內(nèi)容:
{
"ID": 4
}
在 C# 中管理它的最簡(jiǎn)單方法(知道 C# 主要用于編寫面向?qū)ο蟮拇a)是將 JSON 解析為一個(gè)對(duì)象,該對(duì)象包含每個(gè) JSON 鍵的屬性。您還可以更改使用字段而不是屬性,如下所示:
public class FieldsModel
{
public int ID;
}
然而,不推薦第二種方法。
我認(rèn)為您只會(huì)得到一個(gè)“Field”,因此您可以重寫您的 Test 端點(diǎn)以等待單個(gè) FieldsModel,如下所示:
[HttpPost]
public string Test(FieldsModel fields)
{
//some code goes here
}
- 1 回答
- 0 關(guān)注
- 136 瀏覽
添加回答
舉報(bào)
0/150
提交
取消