1

私は MVC を扱うのが初めてなので、何も知らないと思い込まないでください。

私は、MVC で既に多くのことが書かれているプロジェクトを取り上げており、それにいくつかのことを追加しようとしています。

1つのビューに線があります

<% Html.RenderAction("List", "Image", new { id = Model.JobId, all = true });  %>

Image ディレクトリの下に List.ascx が表示されます。View Controller に List メソッドが表示されます。

その list メソッドの結果を別の ascx ファイルにレンダリングしたいと思います。(AssignImage.ascx) コントローラーに別のメソッドを追加できることはわかっていますが、同じメソッドを別のビューで使用する方法が必要なようです。

4

2 に答える 2

2

あなたのアクションメソッドで

if (isList) return PartialView("List"); else return PartialView("AssignImage");

于 2009-12-22T18:28:21.263 に答える
1

一部のコードを再利用 (または複製) することを気にしない場合は、おそらくこれに対処するための新しいアクションを作成するだけです。

アクションを変更して別のパラメーターを渡すとは思いません (アクションは既に 2 を取っています: jobId とブール値)。3 番目のパラメーターを考慮して、おそらく既存のコードをどこかで変更する必要があります。

アクションがレコードのリストを提供するだけであると仮定すると、LINQ の 1 行 (またはデータを取得している場合) で新しいアクションを追加すると、DRY がどのように害されるかわかりません...特にコードの保守が容易になる場合1 回のアクションで多くの機能を混在させないようにします。不快すぎる場合は、アクションをリファクタリングして、一般的なメソッドを呼び出すことができます。

于 2009-12-22T18:55:20.517 に答える