3

フォームのすべてのデータを保存します。ASP.Net Core - 投稿フォームのすべてのデータを取得

私のフォームは(Postman Pluginを使用した)これらのelements-

enter image description here

私のコントローラは、だから、私はthis-

のようなものを取得していますthis-

[HttpPost] 
public async Task<IActionResult> Insert(IFormCollection data) 
{ 
    return Ok(data); 
} 

のようなものですがあります

[ 
    { 
    "key": "user_id", 
    "value": [ 
     "'12'" 
    ] 
    }, 
    { 
    "key": "title", 
    "value": [ 
     "123" 
    ] 
    }, 
    { 
    "key": "text[]", 
    "value": [ 
     "werwer", 
     "ghj" 
    ] 
    } 
] 

のテキストの値を取得したいと考えています。

ので、この大文字

"werwer", 
"ghj" 

そうするために、私はthis-

foreach (string description in data["text"]) 
{ 
    // description => empty 
} 

のようなものを試してみましたし、またthis-

data.text 

とalso-

を試してみました
data->text 

しかし、何も私のために働く。

誰でもお手伝いできますか?

ご協力いただきありがとうございます。

答えて

3

各キーをループせず、キーが「テキスト」の場合、値を取得します。値はカンマで区切られた文字列なので、Splitメソッドを呼び出すと、2つの項目(サンプル入力から)を含む配列を取得できます。

foreach (string description in data.Keys) 
{ 
    if (description.Equals("text")) 
    { 
     var v = data[description]; 
     var stringItems = v.Split(','); 
     foreach (var stringItem in stringItems) 
     { 
      //do something with stringItem 
     } 
    } 
} 

ところで、キーはtext、ないtext[]でなければなりません。同じ名前の "text"という複数の入力フィールドを持っていても、送信すると、2つのアイテムintを有する単一のキー("text")になります。

関連する問題