0

強く型付けされSearchViewDataたものには、色と呼ばれるフィールドがあり、そのフィールドは次のようになりColorViewDataます。私の場合、指定された検索条件に基づいて/Colors.mvc/searchこれを入力します。viewData.Model.Colors次に、いくつかの要因に基づいて、で自分自身をレンダリングできる一連のユーザーコントロールの1つをレンダリングしますColorViewData
だから私は最終的に:

<%Html.RenderPartial("~/Views/Color/_ColorList.ascx", ViewData.Model.Colors);%>

これは以前は問題なく機能していましたが、beta1にアップグレードしてから、ユーザーコントロールは常に次のようになります。viewdata = null;

提案?

4

2 に答える 2

3

おそらく過負荷の問題です。3 つのパラメーターすべてを明示的にする RenderPartial(string, object, ViewDataDictionary) を呼び出すことができます。

変更を計画していることの 1 つは、オーバーロードの RenderPartial(string, object) を呼び出す場合、現在の ViewDataDictionary をパーシャルに渡すことです。ベータ版ではそれを行いませんが、これは非常に一般的なシナリオであり、この方法がより使いやすくなるようです。

于 2008-10-24T16:26:40.780 に答える
0

同じことに気づき、次のように修正しましたが、それが「正しい」解決策かどうかはわかりません。

<% Html.RenderPartial("xxx", new ViewDataDictionary(ViewData.Model.Colors)); %>
于 2008-10-24T12:36:33.053 に答える