0

テーブル内のエンティティのすべてのインスタンスを一覧表示するために使用する画面 (ビュー) があります。行をダブルクリックすると、そのエンティティを編集できる画面が表示されます。

リスト画面にボタンがあり、クリックすると、編集に使用したのと同じビューに移動しますが、今回は空のフィールドで、エンティティの新しいインスタンスを作成します。

時々 (!)、エンティティを編集して保存し、リストに戻って「新規」ボタンをクリックすると、新しいエンティティを作成するための画面が表示され、そのエンティティから値が取り込まれます。編集。このデータの「リーク」を引き起こす可能性のあるサービススタックに何かありますか?

どうもありがとう。

編集: これは c# を使用した servicestack.razor (新しい API) の実装であり、mvc はまったく使用されていません。

4

1 に答える 1

0

申し訳ありませんが、私が示したプロジェクトは問題を完全に強調していると思いました。さらに何が必要かわかりません。繰り返す危険を冒して、

  1. d/base に数行のデータがある場合は、リスト ページにデータをロードします。これはデータの表を示しています。

  2. 行をダブルクリックして、フォームを持つ画面を生成します。フォームに行のデータが取り込まれます。

  3. リストページに戻ります。

  4. 今すぐ「新規」ボタンを押してください。これにより、手順 2 でクリックした行をレンダリングするために使用したものと同じビューが生成されます。

  5. フォームを使用して新しいエンティティを作成するため、実際には空である必要がありますが、ビューのフォームに前のレンダリングからの古いデータが入力されていることを確認してください。

ビュー (フォーム) が初めてレンダリングされるときに (フォームはプリコンパイルされていませんか?)、キャッシュに入れられます。問題は、フォーム要素 (テキストボックスなど) にあるデータもキャッシュに入れられているように見えることです。そのため、ビューを使用して新しいエンティティを作成しようとして、すべてのフィールドを空にしたい場合、実際には古いデータが事前に入力されています。

どうすればこれをより明確にできるかわからないのですか?または単体テストはどのように役立ちますか?私が言ったように、私がウェブサイトに置いたプロジェクトは、この動作を明確に示しています。もっと時間を割いても構わないと思っていますが、ここに投稿してから応答を得るまでの長い遅延を待つ余裕はありません. 繰り返しになりますが、あなたが私たちと同じように忙しいことは理解しています。execute メソッドがどのようにキャッシュにデータを格納するのかについて私が持っていた質問に答えていただけると助かります。またはそれはありますか?ソースコードにはインラインドキュメントがほとんどないため、従うのがそれほど明確ではありません。そのため、デバッガーなどを使用してステップスルーするのにかなりの時間を費やしました....そして、いくつかのことについてまだ明確ではありません.

とにかく、私が不平を言っているように見えたら申し訳ありませんが、そうするつもりはありません. フレームワークには大きな可能性があると確信しています。

于 2013-01-29T16:44:40.723 に答える