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

ASP.NET MVCのAjaxフォーム検証方法とjsonでの結果取得について

このQ&Aのポイント
  • ASP.NET MVCでAjaxを利用したフォーム送信と検証方法について相談です。画面遷移なしでフォーム内容を送信し、DBを更新したいです。
  • 通常のフォーム検証と送信はできていますが、Ajaxになるとわかりません。フォームを送信して結果をjsonで受け取る処理は可能でしょうか?
  • 書き換える内容が複数あるため、ASP.NET AJAXのような"UpdatePanel"は使えません。基本設計や画面設計に関わるので少し急いでいます。

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

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

おっしゃていることはよくわかるのですが、質問内容があまりに一般論すぎて回答のしようがない、ということですね。 こういう設計は実証したのちに考えるべきもので、最初から「最高の方法は何か」という結論は出しにくいですね。 これまでずっと、サーバサイドプログラムしかやったことのないPGには最初から理解できないので、そこは腹をくくってください。 しかもASP.NETとVB.NETなどという組み合わせはそれこそ特殊なので、ちょっと難しいかもしれません。 以下のジャンルで順に実装をテストしてみることをお勧めします。 jQueryな実装として ・jQuery.validationの実装 ・jQuery.ajaxでの実装 ・jQuery.formプラグインでの実装 MVC的な方法論として、 ・Client Validation ・Remote Validation Ajax/Htmlヘルパーな実装として ・Html.BeginForm ・Ajax.BeginForm ・OnSuccessコールバック あともし英語が読めれば、この記事も読んでみてください。 http://stackoverflow.com/questions/9489195/difference-between-jsonresult-ajax-beginform 自分が思うには、jQueryでいこうが、Ajaxヘルパーでいこうが、どちらでも問題はないと思います。 あとは。ValidationとかConfirmationとか、Validation失敗後の戻しとか、全体を含んだForm処理のなられを確立することじゃないでしょうか? 自分なら、全部Ajaxヘルパーを使いますが。jQueryのフォーム処理は検証が絡むと煩雑なように思います。少なくともASP.NET MVCレベルの検証を行うなら、という意味で。 (phpのようにオンスクリーン検証はjavascript環境のみで、サーバサイドはエラー画面だけ出してhistory.back()してもらうんならどうでもいいんですが)

nayutax
質問者

お礼

shockatz様、本当にいつもありがとうございます。 アドバイスの内容を参考に、一通りやってみます! 身近にMVCやjQueryに詳しい人間が全くいないもので、非常に困っていました。 そうですか! @Ajaxヘルパーが使えるんですね。良かったです! またすぐ不明点が出てくると思いますので、そのまた見捨てずにアドバイスしてやってください。 本会は(も)本当にありがとうございました。

その他の回答 (1)

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

> 質問なのですが、ここにあるような、「フォームを送信」して、「結果をjsonでもらう」処理は > 可能なのでしょうか? > 結果の取得は非同期?になるような感じですが、Ajaxは対応できるでしょうか? えーと、Ajaxと言う言葉をどういう意味で使われているでしょうか。 通常上記のような処理を非同期で行うものをAjaxと呼ぶので、この処理にAjaxで対応できるか?と聞かれると、何がわかっていて何がわかっていないのか、さっぱり判断できない、という感じになります。 この手の処理は最近JQueryを利用することが多いと思います。 Ajaxという言葉から一旦離れて、JQueryとASP.NET MVCの連携、ということで情報を探すと解決策がみつかるかもしれません。

nayutax
質問者

補足

onosさま(どっとねっとふぁん様?でしょうか 某会議室でもいつもお世話になっています。 自分は新参者のSEで、いつも顧客側デザイナの要求と社内外のPGとの間に立っているものです。 仕様を決めるにあたって、顧客の要求を詳細設計に落し込む時点で悩んでおります。 一般的に云う「Ajax」で、「画面遷移なしに非同期処理を行える」という点は確かに理解しているのですが、その実装が正確にわかりません。 ・Form形式になっている入力フォームがあるとして、 ・「送信」ボタン押下で、入力内容を検証→NGならばメッセージ出して再入力をうながし、 ・送信直前に「本当に更新しますか?」確認メッセージを出して、 ・送信結果、OKならば画面の上下に更新された関連情報を出して、なおかつ「更新されました」というメッセージも出す。 という内容です。 これを、jQueryのプラグインとASP.NET MVCのAjaxヘルパー機能(@Ajax.BeginFormや@Ajax.ActionLinkなど)を組合せて間違いなく実現する手段が知りたいのです。 自分の設計はいつもレビューで「実装への考察が甘い」とPGさんに大不評です。 お客様が希望される内容を設計しているだけなのですが。。

関連するQ&A