問題タブ [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.

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

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回目は通じたけど…???

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

asp.net-mvc - 別のビューから部分ビューを (コントローラー アクションで) レンダリングする

ツリービューを含むレイアウトがあります。ツリービューは によって取り込まれ、AddressBookControllerですべてのページにレンダリングされます@RenderPage("addressbook.cshtml")(現在は にありますShared)。これに関する問題は、AddressBook.cshtml の上部にあるように、View と Controller の間に密結合があることです。次のコードがあります。

通常のビューのようにレンダリングできるように、コントローラーから部分ビューをレンダリングするにはどうすればよいですか?

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

c# - BaseController コンストラクターで既存のセッションを取得する

私の Global.asax では、 Session_Start() に次のコードがあります。

私の BaseController には、次のプロパティがあります。

このベースコントローラーを使用するすべての鉱山コントローラーで機能していますが、私の BaseController コンストラクター自体では機能していません。

このセッションは Null...

私の BaseController でこれを試してみてください:

なんで?BaseController で直接ユーザー ログインを取得するにはどうすればよいですか? より良い方法は何ですか?

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

asp.net-mvc - ASP.NET Mvc で、複数のアクション メソッドに分岐し、同じビューに戻る最善の方法は何ですか?

ここのところ:

  • 複数の送信があるページがあり、各送信は前の送信に依存しています。

  • 送信がクリックされるたびに、同じページがレンダリングされます。

  • コントローラー メソッド (ViewModel に基づく分岐) でスパゲッティ コードを記述していることに気付き、各送信の動作を個別のメソッドに分解したいと考えました。

  • ここにあるソリューションを実装しました。具体的には、Maartin Balliauw の記事に基づいて mkozicki が投稿したソリューションです。

  • これは、さまざまなコントローラー メソッドへの分岐にうまく機能しました。しかし、次の 2 つの問題に遭遇しました。

    1. 毎回同じビューに戻ります。
    2. View.cshtml でのアクション メソッド名の配線

コードは次のとおりです。

コントローラ:

ビューからの抜粋 (SelectPlayer.cshtml)

したがって:

  1. return View("SelectPlayer",new PlayerStatViewModel(...);毎回同じビュー (SelectPlayer.cshtml) を強制的にレンダリングするための最良の解決策で、フォークされたアクション メソッドから戻っていますか?
  2. ビューでアクション メソッド名をハードコーディングしないようにする方法はありますか (つまり、<form action="/PlayerStat/ChosenSeason" method="post">) 可能であれば引き続き使用したいと思い@using (Html.BeginForm())ます。
0 投票する
2 に答える
1858 参照

asp.net-mvc - MVC 4 コントローラーに投稿すると、親オブジェクトのネストされたオブジェクトが null になるのはなぜですか?

カスタムクラスを含む複雑なモデルがあるとしましょう:

そして、次のような MVC 4 コントローラー:

このクラスのインスタンスを ajax ポストを使用してコントローラーに渡し、ビュー、部分ビューを返そうとしたり、オブジェクトを覗き見したりすると、engineのすべての値がnullになりますが、それ以外はすべて問題ありません。

POST のリクエスト ヘッダーのフォーム データに表示される JSON の例を次に示します。

注: FuelRemainingVehicleStatusの値は、コントローラーと結果ビューに問題なく表示されます。

なぜこれが当てはまるのか、これを回避する最善の方法を誰かが説明してもらえますか?

asp.net チームのこのブログ記事を見つけましたが、日付が 2010 年で、それ以上の最新情報を見つけることができませんでした。