問題タブ [unobtrusive-ajax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
536 参照

ajax - doc.ready 中に存在しなかった Ajax.BeginForm を接続しますか?

Ajax.ActionLink を介してパーシャルをロードする MVC ページがあり、これが機能し、ロードされたパーシャルには Ajax.BeginForm を持つフォームが含まれています。このフォームは目立たない ajax に接続されておらず、代わりにページの更新を実行しています (送信をクリックするとイニシエーターが jquery ではなくブラウザーであることを示すブラウザーのネットワークログでこれを確認しました)。

問題は、ページが読み込まれたときにフォームが存在しなかったため (後で Ajax.ActionLink を介して追加された)、目立たない ajax が新しく追加されたフォームの data-ajax 属性を認識しなかったことです。必要なイベントを接続します。これは document.ready でのみ発生すると想定しており、その時点では ajax フォームは存在しませんでした。

「邪魔にならない Ajax さん、data-ajax でマークされた新しい要素がいくつかあるので、私のページをもう一度見てください」と言うためにできることはありますか?

ありがとう。

目立たない ajax ソースを見ると、次のようになっています。

生成されたフォーム タグは次のようになります。

私が知る限り、.live イベントのセレクターは、ページに読み込まれたときに新しいフォームを取得する必要があります。ただし、フォームはブートストラップモーダル内にあるため、イベントが何らかの形で発生するのを妨げているかどうかはわかりません。

これを Chrome コンソールで実行することもできます。

フォーム要素は正常に返されますが、送信をクリックすると、ページ全体が更新されます。preventDefault に配線したので、少なくとも何もしないと思います。

0 投票する
8 に答える
35045 参照

jquery - jQueryを1.9.0に更新した後、控えめなAjaxが動作を停止しました

jQueryとjQueryUIをjquery-1.9.0.min.jsとjquery-ui-1.9.2.min.jsに更新しました

そして...すべての控えめなAjax呼び出し(Ajax.ActionLink、Ajax.BeginForm)が正しく機能しなくなりました-既存のdivを更新する代わりに、結果を新しいページで開きます。

そして、ページが読み込まれると、Firebugでこのjavascriptエラーが発生します。

ここに画像の説明を入力してください

もちろん、コードは変更されていません。Nugetを使用してjQueryスクリプトを更新しただけです。

誰もが同じ問題を経験しましたか?

0 投票する
1 に答える
10909 参照

jquery - Jquery 1.9.0 に更新すると jquery.unobtrusive-ajax プラグインが壊れる

重複の可能性:
jQuery 1.7 - live() を on() に変える

//解決策:承認された回答が提案したように4つのオカレンスを置き換えただけで、目立たないajaxプラグインが起動し、jquery 1.9.0で再び動作します

更新//これを解決する最良の方法である、下部にマークされた回答のコメントを確認してください。

//元の投稿: jQuery 1.9.0 にアップグレードしましたが、控えめな ajax プラグインが live メソッドを廃止したためダウンしました。アップグレードにより別のバグが修正されるため、このように置き換えようとしました。しかし、うまくいきません。live を次のように on に置き換えただけです。

0 投票する
2 に答える
995 参照

ajax - OnSuccess で呼び出しフォームを取得する

このパーシャルから複数のフォームがある場合、それらはすべて同じクラスを持つため、これは好きではありません。サーバー側で ID を生成し、それをJS コールバック。

.ajax を使用しthisて、リクエストを送信したフォームを取得し、そこから親の .formContainer を取得できます。OnSuccess でフォームを送信したフォームへの参照を取得する方法はありますか?

0 投票する
1 に答える
1930 参照

asp.net-mvc - IE で部分ビューが更新されない

カスケード ドロップダウン リストを含む Razor ビューがあります。親リストは ajax 対応で、jquery.unobtrusive-ajax.js を使用します。子リストは部分ビューです。

部分ビューには、子リストのドロップダウンが含まれているだけです。

コントローラー メソッド GetChildren は、リスト データを ViewBag アイテムにロードし、部分ビューを返します。

親リストでアイテムが選択されると、子リストに関連アイテムがロードされます。これは、Firefox と Chrome で意図したとおりに機能します。しかし IE9 では、子リストは単に空白になっています。Fiddler で Ajax 呼び出しを見ると、部分ビューの内容が正しく返されていることがわかります。

IE で子リストを正しく更新するにはどうすればよいですか?

編集

親リストでアイテムが選択されると、Fiddler はこれを記録します。

0 投票する
1 に答える
3924 参照

asp.net-mvc - 部分的に読み込まれたビューのポストバックにより、null モデルが発生します

私のアプリケーションには、検索ボックスがほとんどないページがあります。ユーザーがそれぞれの検索ボタンをクリックすると、結果グリッドが読み込まれることが期待されます。そのグリッドには、データを保存するために必要に応じてユーザーが変更して保存ボタンを押すことができる編集可能なコントロールがほとんどありません。

AjaxForm と部分ビューを使用して機能を実装しました。

  1. 検索ボックスと検索ボタンを含む検索領域は、Ajax.BeginForm を使用して作成され、送信時にコントローラーからポストバック Search メソッドが呼び出されます。SearchModel がこのメソッドに渡されます。
  2. 結果を表示するために部分ビューが作成され、ステップ 1 の Ajax フォームがコントローラーのポストバック メソッドから正常にロードされます。SearchModel.Results プロパティは、そのモデルとしてビューに渡されます。
  3. 結果を示すこの部分ビューには、コントローラーで別のメソッドを呼び出すが、コントローラーでモデル null を取得する [保存] ボタン (これも Ajax フォーム) があります。

多くのトリックを試みましたが、失敗しました。これを機能させるための実際の例や提案はありますか? データをロードするための AjaxForm の使用法が説明されている Web 上の多くの例がありますが、複数の (またはネストされた?) ものは見つかりませんでした。

前もって感謝します。

編集 - 2月24日

これは、Visual Studio の既定の MVC テンプレートを使用して作成したサンプルです。これは、上記で説明した実際の基準に似ており、部分ページの送信で同じ問題があります。

ビュー:

インデックス.cshtml

部分ビュー - _SearchResult.cshtml

モデル:

SearchModel.cs

ResultModel.cs

コントローラ:

HomeController.cs

SO、上記のサンプルは

  1. ホームページに検索ボックスを表示する - Index.cshtml
  2. 送信をクリックすると、検索の下に結果を表示する部分ビューが読み込まれます
  3. 検索結果を編集して結果フォームで [送信] を押すと、そこにブレークポイントを設定してください。返されるモデルが null であることがわかります。

これで私の問題が説明できることを願っています。

0 投票する
2 に答える
15128 参照

jquery - ASP.NET MVC 4: jQuery Unobtrusive Ajax を変更できません

ASP.NET MVC 4とを使用しNuGetてパッケージを管理します。

jQuery 1.9.1viaにアップグレードした後、 の関数の削除に関するエラーが発生NuGetし始めました。JavaScriptlive()jQuery 1.9.x

F5 キーを押して VS.NET からデバッグ モードで実行し、ログイン ページに移動して、次の情報を取得します。

エラー Microsoft JScript

この StackOverflow の回答を見つけました: https://stackoverflow.com/a/14512797に 4 つの変更を加えました~\Scripts\jquery.unobtrusive-ajax.js

私の~\Scripts\jquery.unobtrusive-ajax.js

また、物理的に削除jquery.unobtrusive-ajax.min.jsWebGrease 1.3.0て、更新された から再生成していまし~\Scripts\jquery.unobtrusive-ajax.jsた。

しかし、何らかの理由で、.live()関数を使用しないという私の変更は固執していません。VS.NET が MVC アプリを実行している IIS Express 8.0 Web サイト (localhost:63798) を停止してみました。

また、F5 キーを押してデバッグ モードで再度実行する前に、Build->Clean Solution、Build->Rebuild Solution を実行してみました。

誰かが以前にこれを経験し、洞察を持っているなら、私はとても感謝しています. 前もって感謝します。

0 投票する
1 に答える
2058 参照

jquery - ASP.Net MVC - 部分的な更新後にクライアント側の検証が中断されますか?

検索バーを含むページがあり、デフォルトでは下に項目のリストが表示されます。ユーザーが数量を更新できるように、各アイテムは ajaxform 内にラップされます。クライアント側の検証は、ページの読み込み時に完全に正常に機能し、数量が必要です。

ユーザーが検索をクリックするとすぐに、パーシャルの結果が更新され、検証全体が中断され、検証の概要が表示されなくなります。

呼び出してパーシャルをリフレッシュした後、検証を追加しようとしました$.validator.unobtrusive.parse($("#resultList")); が、何もしないようです。

解決策はありますか?

メインフォーム

部分的

0 投票する
1 に答える
4151 参照

ajax - ASP.NET MVC4 Ajax.ActionLink はページ全体を置き換えます

私の見解では:

結果ページのヘッダーで、これらのスクリプトが参照されていることがわかります。

リンクは次のようになります。

コントローラーで:

私の web.config (アプリケーションのルート) で:

私の問題は、リンクをクリックするたびに、結果 (現在の時刻) が常にページ全体を置き換えることです。some_div の前後に挿入されません。ありがとう

0 投票する
1 に答える
15715 参照

asp.net-mvc-4 - 部分ビュー用の目立たない Ajax フォーム

邪魔にならない ajax を使用して、お問い合わせフォームからデータを投稿するのに問題があります。

私の部分的なビューは次のようなものです:

私の部分的なビューは、次のように別のページに配置されます。

私のホームコントローラーは次のようになります:

私が期待しているのは、送信を押すと、コントローラーが「結果」のIDを持つdivに配置されるテキストコンテンツを返すことです。

実際に何が起こっているかというと、送信を押すと、/Home/_ContactUsPartial にリダイレクトされ、テキスト コンテンツだけが表示されます。

ここで何が起こっているのか理解できません...そして、オンラインで例を見回そうとしましたが、この穴を深く掘り下げていることに気づきました。

Web.config で目立たない JavaScript を有効にしており、jquery.unobtrusive-ajax.min.js への参照も持っています。

私の Scripts フォルダーには、関連する可能性のある次のものがあります。

  • jquery.unobtrusive-ajax.min.js
  • jquery.validate.unobtrusive.min.js
  • MicrosoftMvcAjax.js

私の _Layout.cshtml タグでは、次のように宣言しています。

私の Global.asax.cs Application_Start には、次の行があります。

RegisterBundles は次のようになります。

この ScriptBundle を介してそれらを取り込むように構成されているように見えるため、バンドルがどのように機能し、どのように機能するかはわかりません...しかし、_Layout.cshtml のヘッドで手動で構成することもできます....

私が間違っていることは何か分かりますか?これについて何か助けていただければ幸いです。