問題タブ [controllers]
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 - コントローラーのグループ化
Visual Studio 2008 プロジェクトで、次のディレクティブでコントローラーをアクセス可能にするにはどうすればよいですか?
http://localhost/MyWebsite/api/users/get/1
/api/ と /users/ はどちらもコントローラーであり、「get」はパラメーターとして 1 を持つ「users」のメソッドです
基本的に、REST の実現について話していると思います。
何か案は?
ありがとう、ニック
修理済み
Phil Haack は Areas と呼ばれる拡張機能を開発しました。これにより、ASP.Net MVC プロジェクトでコントローラーをグループ化できます。 コントローラーのグループ化
ruby-on-rails - 批評のためのRails Application Controller(辛辣であっても構いません)
コントローラーが必要とすることの 99% を処理するアプリケーション コントローラーを作成しました。ここに投稿しました(ペーストビン)。私が言ったように、遠慮なく厳しくしてください。
-更新:コメントを追加しました:)
どうも、
-C
PS ここでの私の意図は、_message メソッドや after_ メソッドなど、サブクラス化されたコントローラーで異なる機能を必要とするメソッドを上書きすることです。アプリケーション コントローラーは、一種の抽象クラスとして機能します。また、一部の before_filters は、tiny_mce や restful_authentication などのプラグインに固有のものです (これはすばらしいことです)。
ruby-on-rails - Rails-2つのコントローラーまたはアクションの追加?
管理セクションと公開セクションを備えたWebアプリの設計。「インデックス」と「ショー」のためだけに公開されているコントローラーを持っているように感じますが、少し冗長です。私が読んだすべての提案は、adminの名前空間を示唆しています。これは問題ありません。「list_public」などの追加アクションを備えたコントローラーを1つ持つべきかどうか疑問に思います。
Railsは初めてなので、何も気にしないかもしれません。これらすべてのコントローラー、ビュー、同じ名前のヘルパーをプロジェクトディレクトリ全体に散らばらせるというアイデアは好きではありません。
誰かがこれについて何か洞察を持っていますか?前もって感謝します。
asp.net-mvc - Mvcコントローラー用にMvcビューが作成される場所を指定するにはどうすればよいですか?
重要な更新
MVC2.0Preview 1のリリース以降、この機能は実際のフレームワーク自体の一部としてAreasの形式で実装されています。詳細については、PhilHaackのブログをご覧ください。
ListManagerControllerというコントローラーがあります。このコントローラーには、Index()と呼ばれるActionResultメソッドが含まれています。Visual Studioで[インデックス]を右クリックして[ビューの追加]を選択すると、新しいビューが/ Views / ListManager/Indexに作成されます。
ただし、インデックスビューとそれに続くすべてのビューを/ Views / Manage /ListManager/に作成する必要があります。どうすればこれを達成できますか?
編集:この質問はここに投稿された質問の複製であることが指摘されました。私の検索スキルは最初は失敗したようです。
validation - オタクディナー検証ルールの質問
NerdDinnerチュートリアルのステップ5で、完全な編集アクションメソッドの実装の途中に次の段落があります。
Edit実装の良いところは、ControllerクラスもViewテンプレートも、Dinnerモデルによって適用される特定の検証またはビジネスルールについて何も知る必要がないことです。将来、モデルにルールを追加することができ、それらをサポートするためにコントローラーやビューにコードを変更する必要はありません。これにより、最小限のコード変更で、将来的にアプリケーション要件を簡単に進化させる柔軟性が得られます。
私の質問は、どのようなルールが追加される可能性があり、クリーンな分離を失わないようにするかです。私はこのコードを見ることができます:
このコードよりも優れています:
特定のクラス/モデル情報がなく、アプリケーション全体で使用できるためです。そして、私のエラー処理が上記のように単純である場合、それがどのように良いかはわかりますが、新しいビジネスルールにもっと複雑なものを追加する方法がわかりません。例を期待していました。
asp.net - ASP.NET MVC で別のコントローラーからビューを表示する
別のコントローラーからビューを表示することは可能ですか?
たとえば、ビューがあるCategoriesController
としCategory/NotFound.aspx
ます。にいる間CategoriesController
、私は簡単に戻ることができますView("NotFound")
。
ここProductsController
で、製品を追加するアクションとビューがあるとします。ただし、このアクションには、製品を追加するカテゴリが必要です。たとえば、Products/Add/?catid=10
.
に基づいてカテゴリを見つけることができない場合は、Products コントローラーの下にビューを作成するのではなく、Categories コントローラーからビューcatid
を表示したいと考えています。NotFound
CategoryNotFound
これは可能ですか、それとも間違った方法で構造化していますか? これを行う良い方法はありますか?
asp.net-mvc - MVC コントローラの機能を分割する最良の方法は何ですか?
コントローラーを作るとき、それを分割する最良の方法は何ですか?
その下に多数の .ascx Web ユーザー コントロールといくつかの .aspx ページがある管理セクションがあるとします。AdminController を 1 つ持つ必要がありますか? または、個々の管理ページ/Web ユーザー コントロールごとにコントローラーを用意する必要がありますか?
1 つのページのアクションを担当することは、MVC が Web フォームから改善しようとしていたことの 1 つに反するようです。しかし同時に、Web サイト全体に 1 つのコントローラーは必要ありません...
管理者が何をすべきかは理解していますが、個々の管理者はどの程度の責任を負うべきですか? コントローラーの責任を分割するための最良の方法は何ですか?
ありがとう、
マット
asp.net-mvc - ビューが別のコントローラーから作成された場合、コントローラーからメソッドを呼び出すことはできますか?
ビュー Index.aspx を返す HomeController から Index() を呼び出したとします。Index.aspx の javascript で ajax を jquery すると、別のコントローラー (ExternalController) のメソッドを呼び出すことができますか?
エラーは発生しませんでした。ページは HomeController からレンダリングされました。
内部サーバーエラーが発生しました...
ビューがレンダリングされたものとは異なるコントローラーを呼び出していることが原因である可能性があるかどうか疑問に思っています
ruby-on-rails - ActiveScaffold を使用したインスタンス変数の設定
最近 ActiveScaffold を既存の Rails プロジェクトに追加しましたが、問題は、ActiveScaffold が使用している変数名が、既に持っているものと同じではないことです。アプリケーション全体を調べてすべてのインスタンス変数名を変更するのではなく、コントローラーでインスタンス変数を設定できるようにしたいと考えています。問題は、が呼び出しの後にある場合でも、 で@record
とを呼び出す@records
ことができないことです。プラグインを調べてみると、モジュール内に明らかなフックが見当たりません。不思議なんだけど:before_filters
before_filter
active_scaffold
ActiveScaffold::Actions
- そのようなフックはありますか?
- そうでない場合は、どのように入れればよいですか?
ruby-on-rails - Collection_select の問題
更新: 解決しました。ありがとう、ビジーマーク!
編集:これは、BushyMark からの以下の回答に基づいて改訂されています。提案されたすべての変更を正しく行ったと思いますが、ユーザーがメッセージを送信したときに post_type_id をデータベースに保存することはまだできません。
私のアプリにはプロフィール ページがあります。プロフィール ページで、ページの所有者は更新を入力して [送信] をクリックできます。更新メッセージは、ページをリロードせずに表示されます (つまり、Ajax)。
基本的には、Twitter のホームページのように見えます。しかし、ユーザーが更新を入力するときに選択するメッセージ「タイプ」もあります。メッセージ タイプは、事前入力されたリストです。これをモデルにして、シード データとしてアプリに読み込みます。
つまり、プロファイル モデル、ポスト モデル、およびポスト タイプ モデルがあります。
profile has_many :posts
post belongs_to :post_type
post_type has_many :posts
ポストモデルにはこれもあります:attr_accessible :message, :post_type_id
Routes.rb は次のようになります:
map.resources :users, :has_one => :profile, :has_many => :posts
map.resources :post_types
投稿コントローラーには、投稿を作成するための次のメソッドがあります。
これがすべて発生するプロファイル ページの「表示」ビューは、次のようになります。
それが背景です。これが問題です。私の現在のセットアップでは、ユーザーがメッセージを送信すると、メッセージは投稿データベース テーブルに送信されますが、post_id は送信されません。
私のselectタグは次のようにレンダリングされています:
<select id="post_post_type_id" name="post[post_type_id]"><option value="">Please select</option>
これは、投稿を送信したときにログに出力される出力です:
Processing PostsController#create (for IP at 2009-09-03 03:03:08) [POST]
Parameters: {"message"=>"This is another test.", "commit"=>"Update", "action"=>"create", "authenticity_token"=>"redacted", "post"=>{"post_type_id"=>"3"}, "controller"=>"posts", "user_id"=>"1"}
User Load (0.3ms) SELECT * FROM "users" WHERE ("users"."id" = 1)
Profile Load (0.7ms) SELECT * FROM "profiles" WHERE ("profiles".user_id = 1) LIMIT 1
Post Create (0.5ms) INSERT INTO "posts" ("message", "updated_at", "post_type_id", "profile_id", "created_at") VALUES('Hello', '2009-09-03 20:40:24', NULL, 1, '2009-09-03 20:40:24')
BushyMark のコメントに従って更新された私のスキーマの関連部分は次のとおりです。