MVCでモデル一式をformdataに追加して取得する方法
2023-07-29 19:05:37
質問
フォームデータからモデルオブジェクトを渡し、コントローラでモデルタイプに変換するにはどうしたらよいでしょうか。
以下は、私が試したものです
JavaScriptの部分です。
model = {
EventFromDate: fromDate,
EventToDate: toDate,
ImageUrl: imgUrl,
HotNewsDesc: $("#txthtDescription").val().trim(),
};
formdata.append("model",model);
の値を確認し、AJAXで渡すと文字列になります。
Request.Form["model"]
の値をチェックしても結果は同じです。つまり、文字列として受け取られ、値は
"[object object]"
フォームデータを介してモデルを渡し、コントローラでそれを受け取る方法はありますか?
どのように解決するのですか?
ビューがモデルに基づいていて、コントロールが
<form>
タグの中にコントロールを生成した場合、モデルをシリアライズして
FormData
を使って
var formdata = new FormData($('form').get(0));
で生成されたすべてのファイルも含まれます。
<input type="file" name="myImage" .../>
を使用してポストバックします。
$.ajax({
url: '@Url.Action("YourActionName", "YourControllerName")',
type: 'POST',
data: formdata,
processData: false,
contentType: false,
});
で、コントローラに
[HttpPost]
public ActionResult YourActionName(YourModelType model)
{
}
または(モデルに
HttpPostedFileBase
)
[HttpPost]
public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage)
{
}
フォームにない情報を追加したい場合は、次のようにして追加します。
formdata.append('someProperty', 'SomeValue');
関連
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] JavaScriptで浮動小数点数を整数に変換するには?
-
[解決済み] MVCで、文字列の結果を返すにはどうしたらいいですか?
-
[解決済み】配列に何かを追加する方法は?
-
[解決済み】FormDataをインスペクトする方法は?
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする