問題タブ [castle-monorail]
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.
extjs - Extjs は、レコードの作成に成功すると、「realize が無効なリモート データで呼び出されました」という例外をスローします。
モノレール アプリケーションで extjs を使用しています。JsonStore を使用してデータをコントローラーに保持しています。読み取り、更新、削除が正常に機能しています。しかし、作成時に応答をフォーマットする方法を理解できないようです。現在、Firebug で次のエラーが表示されます。
キャッチされない例外: Ext.data.DataReader: #realize が無効なリモート データで呼び出されました。DataReader#realize のドキュメントを参照し、DataReader の構成を確認してください。
このエラーが意味する WTF について困惑しています。誰にもポインタがありますか?以下のコードの関連ビット:
私の現在の対応はこんな感じですが、試行錯誤を重ねた結果なので、かなりまとまりがありません。
.net - .NETハッシュテーブル-「同じ」キー、異なるハッシュ
2つの.net文字列が異なるハッシュを持つことは可能ですか?私は、とりわけ重要な「パス」を備えたハッシュテーブルを持っています。テーブル内の要素をループして印刷すると、キーが存在することがわかります。
ただし、検索しようとすると、一致する要素がありません。デバッグは、私が探している文字列が、キーとして提供しているものとは異なるハッシュを持っていることを示唆しています。
このコードは、ビューエンジンとして点字を使用するCastleMonorailプロジェクトに含まれています。私が探しているキーは、次のようなブレイルラインによって挿入されます。
次に、このメソッドで(カスタムIRoutingRuleで):
キーはログに出力されますが、関数はnullを返します。これが.net文字列の問題でさえあるかもしれないとは知りませんでしたが、これはある種のエンコーディングの問題だと思いますか?
ああ、これはモノラルを実行しています。
リクエストに応じて、ログからの関連行は次のとおりです。
また、ここでは、ログ印刷呼び出しの上にコード行を追加しました。
ログを見ると、2つの「パス」キーがあることがわかります。デバッガーは、テーブルのさまざまな場所に両方のキーを表示します。
unit-testing - テストでのモノレール アクション呼び出し全体
BaseControllerTest.PrepareController は、PropertyBag や Context などのコントローラー プロパティのセットアップに十分です。
しかし、アクション属性で宣言されたフィルターを含め、統合テストのためにパイプライン全体を実行するにはどうすればよいでしょうか?
編集:ビューのレンダリングには興味がありません。コントローラーのロジックと宣言型フィルターだけです。
かなりの量のビュー セットアップ ロジックをアクション フィルターに移動するというアイデアが気に入っていますが、追加レベルの統合テストが必要かどうか、または Selenium を使用したほうがよいかどうかはわかりません。
castle-activerecord - CastleMonoRailARDataBindが存在しない行にバインドしようとしています
モノレールで実行され、Castle ActiveRecord / NHibernateを使用しているショッピングカートアプリケーションがあり、エンティティにマップされているShoppingCartテーブルとShoppingCartItemsテーブルがあります。
シナリオは次のとおりです。ユーザーがショッピングカートに物を追加し、たとえば5つのアイテムを追加して、カートを表示します。カートには5つのアイテムがすべて表示されます。ユーザーはタブ/ウィンドウを複製し、同じカートの別のタブを取得します(タブBと呼びます)。ユーザーがカートからアイテムを削除したため、タブBには4つのアイテムがありますが、元のタブAにはまだ5つのアイテムがあります。ユーザーはタブAに戻り、カート内の何かを更新し、変更を送信する[更新]ボタンをクリックします。私のMonoRailアクションは、5つのアイテムすべてを含むビューのデータを使用して、ShoppingCartItemsに対してARDataBindを実行しようとします。ユーザーがタブBから削除したアイテムに到達すると、そのアイテムに対して「指定された識別子の行は存在しません」をスローします。
その行をバインドしない、nullを返す、新しいインスタンスを返すなどの方法があるかどうかわかりませんか?ARDataBind属性にAutoLoadBehaviorパラメーターがありますが、これは子エンティティのロードにのみ影響し、ルートエンティティには影響しないようです。選択したオプションに関係なく、コントロールがアクションメソッドに入る前に例外が発生します(AutoLoadBehavior.Neverを除くが、それは実際には役に立ちません)。
代わりに、Request.ObtainParamsNode()を呼び出してフォームノードをプルし、それらを手動でオブジェクトに解析し、存在しなくなったものを無視するコードがあります。もっと良い方法はありますか?
ありがとう。
unit-testing - モノレールのRenderTextメソッドのユニットテスト
Monorailv1.0.3で記述された古いWebアプリケーションのメンテナンスを行っています。RenderText()を使用するアクションを単体テストしたいと思います。テストでコンテンツを抽出するにはどうすればよいですか?応答ストリームがPrepareController()で適切に設定されていないか、RenderText()で閉じられているため、controller.Response.OutputStreamからの読み取りは機能しません。
アクションの例
テスト例(Moqを使用)
forms - ファイルが添付されたフォームをモノレール コントローラーに投稿する
私は次の形式を持っています(ブレイルで):
コントローラーの次のメソッド署名にポストするもの:
フォームを投稿すると、ファイルのみが取得されます。テンプレート var が null で、その理由がわかりません。誰かが私が行方不明になっている明らかなものを見ていますか?
c# - Castle MVC(モノレール)でユーザーのIPアドレスを取得するにはどうすればよいですか?
CastleMVCアプリケーションのコントローラーアクションで、ユーザーのIPアドレスを取得するにはどうすればよいですか?
asp.net mvcではそうなると思いますRequest.ServerVariables["REMOTE_ADDR"]
が、Castleで同等のものを見つけることができません。
(プロキシの問題などの可能性があることを認識しています。リクエストで報告されたアドレスは問題ありません)
nhibernate - MonoRail: テスト、ルート拡張、フォルダー構造
MonoRail の使用に関していくつか質問があります
テスト
誰もがテストに NUnit を使用する傾向がありますか? これが使用するのに適したテスト フレームワークであるかどうかを知るには、テストを十分に行っていません。私は自分のアプリケーションを以前よりももっとテストしたいと考えており、一般的なガイドラインがあるかどうかを知りたいと思っています。
コントローラーをテスト領域にコピーし、名前に test を含む名前に変更して再実行するだけですか? テスト プロジェクトとメイン プロジェクトが確実に一致するようにするにはどうすればよいでしょうか。すべてをもう一度コピーするだけの場合ですか、それともそれを行うためのツールはありますか?
ルート延長
MonoRail は を使用する傾向がありますが、ルーティングを正しく構成すれば<action>.rails
、その部分を省略できますか? .rails
なぜこれが標準のように見えるのですか?
フォルダ構造
標準のフォルダー構造を実際に指摘している場所は見つかりませんでした。もちろん、コントローラー、モデル、ビューがあります。ただし、Models フォルダーには、データ アクセス オブジェクトも含める必要があります。私はいくつかのようなものを見てきました
しかし、ビューからデータを取得するために使用されるカスタム構造についてはどうでしょうか? NHibernate を使用している場合、マッピングを貼り付けるのに適した場所はどこですか? 開発者に完全に依存していることは知っていますが、標準的なアプローチは実際には見たことがありません。
乾杯
asp.net - モノレールViewComponentのテンプレート
ブロックコンポーネントのvmにhtmlコンテンツを含むテンプレートを作成することは可能ですか?
私はhtmlで多くのことを行っており、htmlをコードビハインドではなく.vmに常駐させたいと考えています。
これが私が持っているものです:
これが私が取得したいものです:pageWithTwoColumns.vm:
twocolumn / default.vm(擬似コード):
.net - 別のコンポーネントの分離コードから ViewComponent をレンダリングする
別のコンポーネントからコンポーネントをレンダリングしようとしています。
問題は、ブロック コンポーネントがそのテンプレートを見つけられないことです。
ResourceProcessingException メッセージ: リソース 'components\CustomReportComponentComponent\default.vm' を処理できません: リソースが見つかりませんでした
コンポーネントが適切に初期化されていないため、他の問題が発生する可能性があると思います。
別のコンポーネントの Render メソッド内からコンポーネントを初期化して、.vm から呼び出されたかのようにレンダリングすることはできますか?