0

モデルクラスストアをRenderPartialに渡そうとしています。renderpartialの目標は、この(ストア)モデルの値を変更/設定することです。私はこのように試みてきました:

@{ Html.RenderPartial("test", new store(){Output=""}); }
@{ Html.RenderPartial("test", new store(){Output2=""}); }


public class store
    {
        public string Output { get; set; }
        public string Output2 { get; set; }
    }

部分的な「テスト」は、出力プロパティを変更する必要があります。それは可能ですか?はいの場合、これを行う方法はありますか?renderpartialには、プロパティの値を計算するためのjavascriptが含まれています。

4

2 に答える 2

0

RenderPartialは、親またはモデルの一部からデータを取得しないことを目的としています。オーバーロード:http: //msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial (v = vs.108 ).aspxオブジェクトはカスタムオブジェクトではないが、 Model.Customersなどのモデルの一部となることを意味します

モデルからパーシャルに必要な値を渡し、パーシャルに独自のオブジェクトを作成させます。

本当にパーシャルに渡したい場合は、親ビューの新しいビューモデルを作成し、ビューモデルにOutputプロパティを設定して、パーシャルに渡します。

また、パーシャルはデータの独自のコピーを取得し、親のコピーを更新できないため、ここで実際に必要なものが無効になる可能性があることにも注意してください。

他の計算データが必要な場合は、可能であれば、ビューに渡す前にコントローラーで実行してください。

于 2012-09-05T07:11:56.087 に答える
0
@store st = new store(){Output="", Output2=""};
@{ Html.RenderPartial("test", new RouteValueDictionary {{"output", st.Output}, {"output2", st.Output2}}); }
于 2012-09-05T06:49:17.530 に答える