• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【ASP.NET MVC】フォーム受信)

【ASP.NET MVC】外部からのフォーム受信がうまくいかない

このQ&Aのポイント
  • ASP.NET MVC3の案件で、外部からのPOST送信を受信する仕様が追加されたため、アクションメソッドを実装しています。しかし、うまくいきません。具体的には、送信フォームの内容を受信する際、配列値の受け取り方に問題があります。phpでは変数cboxに配列値が入るのですが、ASP.NET MVCではどのように受信すれば良いのか分かりません。
  • この問題について、質問させていただきます。ヘルプをお願いします。
  • どなたか、ASP.NET MVCで外部からのフォーム受信をうまく処理できる方法をご存知の方はいらっしゃいますか?お助けください。

質問者が選んだベストアンサー

  • ベストアンサー
  • shockatz
  • ベストアンサー率80% (153/191)
回答No.1

こんにちは 言われてみればありそうなケースなので実験しましたが、このフォーマットのフォームは受信できませんね(苦笑 というか、質問のHTMLはphp専用の書き方だと思います。 CGIでも、JSPでも配列では受信できません。ASP.NET MVCだけの問題ではない。 ASP.NET MVCで、List<string>やstring[]で受信したい場合は、いずれかの書式で送信してもらってください。 <input name="cbox[0]" value="東京" checked="checked"/> <input name="cbox[1]" value="大阪" checked="checked"/> <input name="cbox[2]" value="京都"/> <input name="cbox" value="東京" checked="checked"/> <input name="cbox" value="大阪" checked="checked"/> <input name="cbox" value="京都"/> 推奨は空白値を自動削除する後者。 ちなみに、checkedが"東京"のみの場合、phpでは(配列でなく)自動的に単数値送信なるようです。これはこれで凄いというか…流石のphp仕様

nayutax
質問者

お礼

言語によってフォーム形式が異なるというのは困ったものですよね。 php特有の記法だと主張して先方に変更してもらいました。 <input name="cbox" value="東京" checked="checked"/> <input name="cbox" value="大阪"/> <input name="cbox" value="京都"/> のような単項目の選択でも、ASP.NET MVCではList<string>できっちり取得できました。 今後はこれで行こうと思います。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • onos
  • ベストアンサー率81% (127/155)
回答No.2

もし、相手側のHTMLがどうしても修正不可、というのであれば。 アクションメソッドの引数でデータを取ろうとせず、アクションメソッドの内部でリクエストされた値を自分で解析して取得する、という方法が取れる「かも」しれません。 引数としてうまくとれないのは標準のモデルバインダーがそのような値をうまく扱ってくれないため、と考えられるので、モデルバインダーをカスタマイズする、という方法もとれる「かも」しれません。 #どちらの方法についても未確認です。  たぶんできるだろう、というレベルで記述しています。

nayutax
質問者

お礼

onos様、いつもありがとうございます。 なるほど。。モデルバインダちうんですね。奥が深いです。 もっと勉強したいと思います。 あドバイスありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A