問題タブ [actionmethod]
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.
c# - これは「ハック」ですか?もしそうなら、どのActionResultを返すかを決定するためのより良い方法はありますか?
すべてのページにA-Zディレクトリの「ウィジェット」があります。ユーザーがホームページを表示していて、ディレクトリ内の何かをクリックした場合、対応する結果がロードされたディレクトリページをロードしたいと思います。しかし、ユーザーがディレクトリページを表示していて何かをクリックした場合は、ページを更新せずに結果を非同期でロードしたいと思います。
ディレクトリウィジェットには、GroupControllerのDirectoryResultアクションメソッドを指すリンクがあります。これらのメソッドは、ディレクトリページにある場合、通常はPartialViewを返します。しかし、それらがディレクトリページにない場合は、ビューを返し、ページ全体をロードするメインのディレクトリアクションメソッドにリダイレクトします。
これは問題のコードです:
私はこれをオフィスの人の一人に見せました、そして彼の即時の応答は「それはハックです!」でした。私は彼に同意するかどうかはわかりませんが、それを行うためのより良い方法がわからないからです。
参考までに、これはすべてのページに存在するウィジェットの定義です。
リクエストの送信元のページに応じて、PartialViewとViewのどちらを返す必要があるかを判断するためのより良い方法はありますか?
silverlight - アクション メソッドに独自の出力を使用する方法
MVC のアクション メソッドに独自の出力タイプを使用するにはどうすればよいですか?
(MVC Contribで行ったように)それが可能であることは知っていますが、どうやって?!
Silverlight を MVC ビューとして使用しようとしています。
asp.net-mvc - コントローラーを薄く保つ(アクションメソッドが多すぎる)
私は最初の実際のASP.NETMVCプロジェクトに取り組んでいますが、作業しているコントローラーがかなり大きくなっていることに気づきました。これは、コントローラーを薄く保つというベストプラクティスに反しているようです。
私はビジネスロジックをコントローラーから遠ざけるのに良い仕事をしました。そのために別のレイヤーを使用します。各アクションは主にビジネスレイヤーのメソッドを呼び出し、modelstateが有効かどうかに基づいて最終結果を調整します。
とはいえ、コントローラーには多数のアクションメソッドがあります。直感的には、コントローラーをサブコントローラーに分割したいのですが、簡単な方法がわかりません。コントローラーを別々のコントローラーに分割することもできますが、階層が失われ、少し汚れた感じがします。
多数のシンアクションでコントローラーをリファクタリングする必要がありますか?もしそうなら、これを行うための最良の方法は何ですか?
asp.net-mvc - ASP.NET MVC: アクションで AJAX 要求を適用する
コントローラーのアクションが AJAX リクエスト経由でのみアクセスされるようにする方法を探しています。
アクションメソッドが呼び出される前にこれを行う最良の方法は何ですか? アクションメソッドから以下をリファクタリングしたい:
私が想定しているのは、属性ActionMethodSelectorAttribute
のように使用できるです。[AcceptVerbs]
ただし、そのようなカスタム属性を作成した経験はありません。
asp.net-mvc - ASP.NET MVC:ActionResultを文字列に変換する方法は?
既存のアクションメソッドを使用して、その戻り値を文字列にレンダリングし、AJAXリクエストへの応答用のJSONとして送信したいと思います。
これを行うには、ActionResultを文字列にレンダリングする必要があります。どうすればこれを行うことができますか?
this.Content()を使用して文字列をActionResultに変換できるのとは逆です。
アップデート
既存の最初のアクションメソッドはタイプActionResultを返しますが、実際にはHTTPPOSTリクエストに応答するためにViewResultを返します。AJAXリクエストに応答するJsonResultを返す2番目のアクションメソッド(私のファサード)があります。この2番目のアクションメソッドで1番目のアクションメソッドを使用してHTMLをレンダリングしたいと思います。
物事の壮大なスキームでは、標準のHTTPポストだけでなく、ファサードアクションメソッド(2番目のアクションメソッド)を介したAJAXリクエストによっても取得可能なActionResult(アクションメソッドから生成された)が必要です。このように、私は開発者として、HTTPPostまたはAJAXを使用してページのレンダリングを取得することを選択できます。
申し訳ありませんが、この更新をできるだけ短くしようとしました。ありがとう。
asp.net-mvc - .NET MVC:ヘルパーメソッド内で応答をリダイレクトする方法
統合のためだけにプライベートな「ヘルパー」メソッドに引き出された、いくつかのコントローラーアクションに共通するコードがいくつかあります。このメソッドは、いくつかの健全性/セキュリティチェックを実行し、ユーザーを他のアクションにリダイレクトする可能性がありますが、オブジェクトを「取得」することが期待されています。
これは、Elmahが例外を通知することを除いて、正しく機能します。
だから、私の質問は:私がやろうとしていることをするためのより正しい方法はありますか?基本的に、必要なのは、現在のアクションで処理を停止し、代わりにRedirectToRouteResultを返すことです。
asp.net-mvc - ASP.NETMVCで@Html.Action(...)を呼び出すときに名前空間を指定するにはどうすればよいですか?
Html.Action
ASP.NET MVC 3で、現在のコントローラーとは異なる名前空間のコントローラーを使用しようとすると、エラーが発生します。
コード:
エラー :
パス'/rrmvc / store / checkout'のコントローラーが見つからないか、IControllerを実装していません。
ApplicationController
このエラーは、コントローラーが現在のコントローラーとは異なる名前空間にある場合にのみ発生しStoreControllers.CheckoutController
ます(実際には、コントローラーも完全に異なる領域にあります)。
呼び出すときに名前空間を指定する方法はありませんHtml.Action
(名前空間を完全に修飾するような明白な方法はどれも機能しないようです)?
使用するラムダメソッドはなく、MVC3RTMで使用することはできませんでした。Html.RenderAction
編集:私はそれがその地域に関連しているかもしれないと思います-あるいはおそらくこれも完全な赤いニシンかもしれません。別の名前空間に正しく機能する別のコントローラーがあるので、問題はもっと複雑だと思います。わかったら答えを返信します。混乱を避けるために、この質問を削除してください。
asp.net-mvc-2 - 部分ビューを参照するためにコントローラーでアクションメソッドを作成するにはどうすればよいですか?
ReservationControllerクラスにアクションメソッドを記述しました。このコードを機能させるには、GetCoreTabファイルをReservationフォルダーに移動する必要があります。ReservationControllerクラスでGetCoreTabファイルのパスを指定しているので、これは行いたくありません。GetCoreTabメソッドのコードがReservationコントローラークラスから機能するように、パスを指定したいと思います。
構造:
コード:
HTML:
何か案は?
ありがとう
asp.net - ASP.NET MVC アクション メソッドの設計に支援が必要
ASP.NET MVC 3 の学習を始めたばかりです。ASP.NET Web サイトのミュージック ストアのサンプルを調べたり、独自のサイトの開発を開始したりしましたが、どのようにコントローラーアクションメソッドをセットアップする必要があります。
私のサイトでは、ログインしている各ユーザーがプロジェクトで標準の CRUD 操作を実行できます。ProjectController で次のアクション メソッドを使用して、ミュージック ストアのサンプルと同様にセットアップしました。これまでのところ、これは私にとって理にかなっています。
さらに、ユーザーは各プロジェクトにアイテムを追加できます。アイテムは単独では存在できず、作成時にプロジェクトに関連付ける必要があります。理解に苦しんでいるのは、アイテムを作成する必要があるプロジェクトへの参照を渡す方法です。たとえば、私のアイテムコントローラーには、上記のコントローラーに似た Create() アクションメソッドのペアがあります。
View() ヘルパー メソッドは 1 つのオブジェクト パラメーターしか受け入れられないため、最初の Create() メソッドが新しいアイテムを作成する必要があるプロジェクトへの参照を渡す方法がわかりません。プロジェクトへの参照を ViewBag のプロパティに追加するだけですか? 私は動的タイプも初めてで、ViewBag はその時点で魔法のように思えます。なので使うのはちょっと躊躇します。また、強く型付けされたデザインの方が優れていると常に考えてきました。では、新しいアイテムへの参照と追加先のプロジェクトを含む別の「NewItemData」モデル オブジェクトを作成する必要がありますか?
フォームが項目を追加するプロジェクトを認識したら、送信時にこの情報をどのように返す必要がありますか? フォームに非表示の「ProjectID」フィールドが必要ですか? または、クエリ文字列にプロジェクト ID を含む URL にフォーム POST を返す必要がありますか?
最後に、各プロジェクトに追加されたアイテムを一覧表示できるようにしたいと考えています。これは ItemController または ProjectController の一部である必要があります。簡単にするために、デフォルトの Controller\Action[ID] URL ルーティングに固執しています。私のアイデアのいくつかを以下に示します。私は最後のオプションに傾いていますが、このことについてより多くの経験を持つ他の人がどう思うかを本当に聞きたいです.
asp.net-mvc-2 - MVC2のあいまいなアクションメソッド
MVC 2のあいまいなアクションメソッドに問題があります。ここにあるソリューションを実装しようとしました:ASP.NET MVCのあいまいなアクションメソッドですが、それは単に「リソースが見つかりません」というエラーを表示します。呼び出したくないアクションメソッドを呼び出そうとしています。私が使用しているRequiredRequestValueAttributeクラスは、他の質問のソリューションにあったものとまったく同じです。
私の行動方法は次のとおりです。
現在、私はそのint id
バージョンを使おうとしていますが、代わりにそのバージョンを呼び出していstring title
ます。