問題タブ [asp.net-mvc-controller]
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.
asp.net-mvc - Chrome と IE ではビューとコントローラーを互いにフック解除しますが、Firefox ではフックしませんか?
以前、Chrome のアプリでこの MVC 機能を正常にテストしましたが、IE (10) と Firefox でも最近テストしました。
クエリを実行してレポートを生成するためにモデル値をコントローラーに送信するページの送信ボタンをマッシュすると、Firefox でのみ機能するようになりました (3 つのブラウザーにはそれぞれ固有の特徴があります。コホートとの関係では鈍い」(紫と金色に光る)-しかし、ChromeとFirefoxは、送信ボタンのクリックハンドラーと対応するコントローラーのメソッドとの間の接続を失ったようです.
Chrome と IE で送信ボタンを押した後、アプリが単にハングしているように見えます。私が持っているブレークポイント (最初のブレークポイントは、Controller クラスの対応する [HttpPost] ActionResult の先頭にあります) に到達していません。実際、ボタンをマッシュするとアプリがフリーズするようです。その後、送信ボタンを右クリックしても、コンテキスト メニューに「その要素を検査する」というメッセージが表示されません。
Firefox では実行され、ブレークポイントがヒットします。
Chrome と IE がこのように失敗する原因は何でしょうか?
アップデート
Moby のリクエストに応えて、問題のビューの jQuery を次に示します。
ビュー内の HTML はかなり一般的です。jQueryは次のとおりです。
更新 2
この問題を明らかにするかもしれないし、しないかもしれない他の何かは、私の .js と .css 参照です:
. . .
更新 3
Chrome デベロッパー ツールの [ネットワーク] タブは、ワイオミング州の真ん中 (まったく何もない) のように見え、一番下に「リクエストがキャプチャされていません。ページをリロードして、ネットワーク アクティビティに関する詳細情報を確認してください。」というメッセージが表示されます。
F5 を忠実にマッシュすると、アクセスされたすべての .js ファイルと .css ファイルが表示され、最後に (一番上に) 私が見ているページが表示されました。ただし、「レポートの表示」をマッシュしても、タブでそれ以上のアクティビティは発生しません。ただし、送信ボタンのクリック ハンドラーの最後に配置した console.log() msg が表示されます。
コンソールにもエラー メッセージが1 つありますが、これは次のとおりです。
リソースの読み込みに失敗するだけで、他の混乱を招くことはありませんよね?
更新 4
Simon Halsey のヒントに基づいて、Chrome で jQuery を実行すると、次のテストに失敗することがわかりました。
...明らかに Firefox にはありません。また、IE でも失敗すると思います (どちらの場合も確認し、これを更新します)。
後で: Firefox でも "" です...そして、最初は失敗しました - 続行しません。2回目は通じたけど…???
asp.net-mvc - 別のビューから部分ビューを (コントローラー アクションで) レンダリングする
ツリービューを含むレイアウトがあります。ツリービューは によって取り込まれ、AddressBookController
ですべてのページにレンダリングされます@RenderPage("addressbook.cshtml")
(現在は にありますShared
)。これに関する問題は、AddressBook.cshtml の上部にあるように、View と Controller の間に密結合があることです。次のコードがあります。
通常のビューのようにレンダリングできるように、コントローラーから部分ビューをレンダリングするにはどうすればよいですか?
c# - BaseController コンストラクターで既存のセッションを取得する
私の Global.asax では、 Session_Start() に次のコードがあります。
私の BaseController には、次のプロパティがあります。
このベースコントローラーを使用するすべての鉱山コントローラーで機能していますが、私の BaseController コンストラクター自体では機能していません。
このセッションは Null...
私の BaseController でこれを試してみてください:
なんで?BaseController で直接ユーザー ログインを取得するにはどうすればよいですか? より良い方法は何ですか?
asp.net-mvc - ASP.NET Mvc で、複数のアクション メソッドに分岐し、同じビューに戻る最善の方法は何ですか?
ここのところ:
複数の送信があるページがあり、各送信は前の送信に依存しています。
送信がクリックされるたびに、同じページがレンダリングされます。
コントローラー メソッド (ViewModel に基づく分岐) でスパゲッティ コードを記述していることに気付き、各送信の動作を個別のメソッドに分解したいと考えました。
ここにあるソリューションを実装しました。具体的には、Maartin Balliauw の記事に基づいて mkozicki が投稿したソリューションです。
これは、さまざまなコントローラー メソッドへの分岐にうまく機能しました。しかし、次の 2 つの問題に遭遇しました。
- 毎回同じビューに戻ります。
- View.cshtml でのアクション メソッド名の配線
コードは次のとおりです。
コントローラ:
ビューからの抜粋 (SelectPlayer.cshtml)
したがって:
return View("SelectPlayer",new PlayerStatViewModel(...);
毎回同じビュー (SelectPlayer.cshtml) を強制的にレンダリングするための最良の解決策で、フォークされたアクション メソッドから戻っていますか?- ビューでアクション メソッド名をハードコーディングしないようにする方法はありますか (つまり、
<form action="/PlayerStat/ChosenSeason" method="post">
) 可能であれば引き続き使用したいと思い@using (Html.BeginForm())
ます。
asp.net-mvc - MVC 4 コントローラーに投稿すると、親オブジェクトのネストされたオブジェクトが null になるのはなぜですか?
カスタムクラスを含む複雑なモデルがあるとしましょう:
そして、次のような MVC 4 コントローラー:
このクラスのインスタンスを ajax ポストを使用してコントローラーに渡し、ビュー、部分ビューを返そうとしたり、オブジェクトを覗き見したりすると、engineのすべての値がnullになりますが、それ以外はすべて問題ありません。
POST のリクエスト ヘッダーのフォーム データに表示される JSON の例を次に示します。
注: FuelRemainingとVehicleStatusの値は、コントローラーと結果ビューに問題なく表示されます。
なぜこれが当てはまるのか、これを回避する最善の方法を誰かが説明してもらえますか?
asp.net チームのこのブログ記事を見つけましたが、日付が 2010 年で、それ以上の最新情報を見つけることができませんでした。