質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

4041閲覧

ASP.NET MVCでドロップダウンメニューが変更されたら遷移せずviewをレンダリングする方法

widget11

総合スコア221

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

1クリップ

投稿2018/08/20 07:31

編集2018/08/20 07:52

例えば
views/home/index.cshtmlというファイルに以下のようなドロップダウンメニューが書いてあるとします。(Razor等は用いてません)

<select class = "title_list" id="Title" name='Title'> <option value ='title_select>タイトルを選択してください</option> <option value ="movie_title"> 映画です</option> <option value ="drama_title">ドラマです。</option>

これで、例えば映画を選択したら映画の画面(情報)を遷移せず表示し、またドラマを選択したらドラマの画面(情報)を表示するという風にしたい場合はajaxを用いてどのようにすればいいのでしょうか?
色々調べのですが、如何せんajaxと.netMVCの組み合わせが少なく困っております。
個人的に特に分からないことが、
・viewファイルはこの場合映画、ドラマそれぞれ2つ用意するべきなのか
・viewファイルをjQuery=ajaxでどう切り替えるか(どのメソッドを使えばいいか、パスをどう指定したらよいか分かりません)

詳細なコードでなくても実装の方針(まずviewファイルを2つ作る→jsファイルにgetメソッドを書く)といったような書くべき順序のようなものでも構いません。宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/08/20 07:34

Ajaxについてどのように理解されていますか?
m.ts10806

2018/08/20 07:41

HTMLがおかしいですね。全て同じvalueになっていますし、''で閉じられていません。判定はvalueではなくinnerTextで行うつもりなのでしょうか。
widget11

2018/08/20 07:53

ご返信ありがとうございます。正直ajaxは恥ずかしながら画面遷移せず表示が切り替わるくらいの知識しかなくjsファイルを作成しDOM要素をjQueryで取ってきて、 その例えばformのidに対して$("#Title").change(function(){} のようなjQueryメソッドを用いてフォームが変更されたら何かするくらいのイメージしか湧いておりません。 valueに関しましては単純にミスしましたので修正致しました。
退会済みユーザー

退会済みユーザー

2018/08/20 08:02

jQuery.ajax を使うという手段もあるでしょうが、ASP.NET に備わっている ajax helper などの機能をを使ってはいかがですか? それができない理由があれば書いてください。
guest

回答1

0

ベストアンサー

Ajaxは非同期でサーバーと通信が可能となる仕組みです。
Ajaxでも、通常のサーバーサイドの処理でも変わらないことがあります。
「リクエスト」と「レスポンス」です。
サーバーサイドの処理でもクライアントサイドからのPOST送信を「リクエスト」として受け取って何かしら結果を「レスポンス」で返しますよね?
それと同じです。

MVCであれば何かしらのルーティングなどによってリクエストが振り分けられるようになっているはずです。
Ajaxからのリクエストを受け取るためのコントローラを準備し、レスポンスをビューで返すような形になります。
ただしそのビューは通常のHTMLではなく、例えば単なる文字列になります。多いのはJSON形式ですね。

今回で言うと、「Title」が送信されるリクエスト
その結果を受け取ってサーバーサイドで何かしら検索をして、その結果を返す「レスポンス」を作ります。

「レスポンス」を受け取ったら加工してHTMLに反映します。

流れはざっとこんな感じです。

ASP.NET MVCそのものでのAjaxの記事があるかどうかまでは分かりませんが、
やり方をASP.NET MVCに合わせるだけで考え方、リクエストを受け取る→処理してレスポンスを返却の流れは何であっても変わりません。

・viewファイルはこの場合映画、ドラマそれぞれ2つ用意するべきなのか

おそらくレスポンス部分は文字列のみで動的となるので1つで良いのではないでしょうか。

・viewファイルをjQuery=ajaxでどう切り替えるか(どのメソッドを使えばいいか、パスをどう指定したらよいか分かりません)

既に書いたとおりリクエストはTitleのvalueでそれによってコントローラで取得する情報を決めるだけなので、特にそういう必要はないと思います。
ただ私がこの1文の意味をいまひとつ理解できていないからかもしれません。
もう少し具体的に書いていただけると助かるのですが・・・。

投稿2018/08/20 07:44

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/20 07:58

ASP.NET MVC に備わっている ajax helper などの機能を利用して行う方法を説明するのが良さそうですが、そうしない理由がありますか?
widget11

2018/08/20 08:02

つたない質問の中ご回答ありがとうございます。 ・viewファイルをjQuery=ajaxでどう切り替えるかという事の意味ですが、例えばプルダウンで”映画”をセレクトしたら、render home/movie.cshtmlのように映画の部分テンプレートを描画するというイメージだったのでこのような質問を致しました。。
m.ts10806

2018/08/20 08:10

SurferOnWwwさん いえ。あくまで一般的な考え方のみで特有の機能のところまでは言及していません。 質問者さんの要件を満たせるのであればどんどん使っていいと思います。
m.ts10806

2018/08/20 08:13

propsさん 私はJavaScriptでhtmlを書き換えてしまうのが簡単だと思いまさかた。 データが増えたり扱うカテゴリが増えるとそのたびにビューを更新する必要がありませんか? 要件を満たせて効率的なのであれば構いませんが、別途ビューを用意するのであればあまりajaxのメリットはないように感じます
退会済みユーザー

退会済みユーザー

2018/08/20 09:07

mts10806 さん> 返答いただきありがとうございました。 質問者さんの意向が分からないし、私のレスはスルーされているようですので、自分もスルーしておきます。
m.ts10806

2018/08/20 10:37

SurferOnWwwさん 回答とコメントと重複していて見れてないかもしれませんので別途回答で提案してあげてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問