-PR-
  • すぐに回答を!
  • 質問No.7732418
解決
済み

ASP.NET MVCのAjaxフォーム検証

  • 閲覧数1249
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 58% (23/39)

いつも大変にお世話になります。
今回ご相談させていただきたいのは、AJAXフォーム送信と、検証の仕方ついてです。

画面遷移なしでフォーム内容を送信し、データベースを更新したく思っています。
通常のフォーム検証と送信はできていますが、Ajaxになるとさっぱりわかりません。

欲しい挙動は、
1.Ajaxでフォーム内容を送信(その前に内容の検証
2.サーバサイドでフォーム内容を受け、DBを更新して、結果をjsonで返却
3.クライアント側で結果を受け、画面の一部を書き換え、

この「3」なのですが、書き換える内容がいくつかあるので、ASP.NET AJAXのような"UpdatePanel"は使えません。
あくまでjsonを読む必要がある感じです。

質問なのですが、ここにあるような、「フォームを送信」して、「結果をjsonでもらう」処理は可能なのでしょうか?
結果の取得は非同期?になるような感じですが、Ajaxは対応できるでしょうか?

コード例があれば最高ですが、どんな些細なご意見でも構いませんので、拝聴させていただけないでしょうか?
今すぐにコードを完成させなければいけない訳ではないので、若干の余裕がありますが、基本設計や画面設計に関わる部分なので、少し急いでおります。

なにとぞ皆様のお知恵をお貸しください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル11

ベストアンサー率 80% (153/191)

おっしゃていることはよくわかるのですが、質問内容があまりに一般論すぎて回答のしようがない、ということですね。
こういう設計は実証したのちに考えるべきもので、最初から「最高の方法は何か」という結論は出しにくいですね。

これまでずっと、サーバサイドプログラムしかやったことのない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

お礼率 58% (23/39)

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

またすぐ不明点が出てくると思いますので、そのまた見捨てずにアドバイスしてやってください。
本会は(も)本当にありがとうございました。
投稿日時 - 2012-10-09 01:25:27
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル11

ベストアンサー率 81% (127/155)

> 質問なのですが、ここにあるような、「フォームを送信」して、「結果をjsonでもらう」処理は > 可能なのでしょうか? > 結果の取得は非同期?になるような感じですが、Ajaxは対応できるでしょうか? えーと、Ajaxと言う言葉をどういう意味で使われているでしょうか。 通常上記のような処理を非同期で行うものをAjaxと呼ぶので、この処理にAjaxで対応できるか?と聞かれると、何がわか ...続きを読む
> 質問なのですが、ここにあるような、「フォームを送信」して、「結果をjsonでもらう」処理は
> 可能なのでしょうか?
> 結果の取得は非同期?になるような感じですが、Ajaxは対応できるでしょうか?

えーと、Ajaxと言う言葉をどういう意味で使われているでしょうか。
通常上記のような処理を非同期で行うものをAjaxと呼ぶので、この処理にAjaxで対応できるか?と聞かれると、何がわかっていて何がわかっていないのか、さっぱり判断できない、という感じになります。

この手の処理は最近JQueryを利用することが多いと思います。
Ajaxという言葉から一旦離れて、JQueryとASP.NET MVCの連携、ということで情報を探すと解決策がみつかるかもしれません。
補足コメント
nayutax

お礼率 58% (23/39)

onosさま(どっとねっとふぁん様?でしょうか

某会議室でもいつもお世話になっています。
自分は新参者のSEで、いつも顧客側デザイナの要求と社内外のPGとの間に立っているものです。
仕様を決めるにあたって、顧客の要求を詳細設計に落し込む時点で悩んでおります。

一般的に云う「Ajax」で、「画面遷移なしに非同期処理を行える」という点は確かに理解しているのですが、その実装が正確にわかりません。

・Form形式になっている入力フォームがあるとして、
・「送信」ボタン押下で、入力内容を検証→NGならばメッセージ出して再入力をうながし、
・送信直前に「本当に更新しますか?」確認メッセージを出して、
・送信結果、OKならば画面の上下に更新された関連情報を出して、なおかつ「更新されました」というメッセージも出す。

という内容です。
これを、jQueryのプラグインとASP.NET MVCのAjaxヘルパー機能(@Ajax.BeginFormや@Ajax.ActionLinkなど)を組合せて間違いなく実現する手段が知りたいのです。


自分の設計はいつもレビューで「実装への考察が甘い」とPGさんに大不評です。
お客様が希望される内容を設計しているだけなのですが。。
投稿日時 - 2012-10-05 18:13:25
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ