1


0

MVCで代替の子ビューをレンダリングするにはどうすればよいですか?

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

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

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

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

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

そのリストメソッドの結果を別のascxファイルにレンダリングしたいと思います。 (AssignImage.ascx)コントローラーに別のメソッドを追加できることに気付きましたが、同じメソッドを異なるビューで使用する方法があるはずです。

2 Answer


2


アクションメソッドで

`if(isList)return PartialView(" List ");それ以外の場合、PartialView( "AssignImage"); `を返します


1


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

別のパラメーターを渡すようにアクションを変更するとは思わない(アクションはすでに2を使用している:jobIdとboolean)。 3番目のパラメーターを考慮して、おそらく既存のコードをどこかで変更する必要があります。

アクションがレコードのリストを提供していると仮定すると、LINQの1行で新しいアクションを追加する(またはデータを取得している)とDRYが怒るのはわかりません…​ 特に、1つのアクションに多くの関数を混在させないことでコードの保守を容易にする場合。 攻撃的すぎる場合は、アクションをリファクタリングして、一般的なメソッドを呼び出すことができます。