2

これを一般的な方法で解決するのに問題があります。

独自の BeginForm と FieldFor があり、beginForm はその特定のターゲット URL の PermissionLevel を計算し、ViewData にいくつかの情報を保存します。次に、FieldFor はその情報を使用して、レンダリングされたコントロールにさまざまな注釈を表示します。

問題は、パーシャルを使用してフォーム内のフィールドをレンダリングする場合です。親の ViewData はパーシャル内では利用できないようです (デフォルトの Html.Partial 拡張を使用してレンダリングされます) ため、注釈は表示されません。

デバッグすると、WebViewPage の ViewData プロパティが共有されていることがわかりましたが、Html.ViewData のプロパティは共有されていません。フィールドをレンダリングするためにヘルパーを使用しているため、ビューのプロパティではなく、HtmlHelper 内にビューデータしかありません。

何か案は?

ありがとう。

4

1 に答える 1

2

通常、次を使用するだけです

@ViewBag.Property

パーシャルをレンダリングする方法を指定しませんでしたが、パーシャルをレンダリングするために使用しているメソッドが ViewBag を運んでいない場合、ビューバッグに到達するために以下を使用する必要がある場合があります。

@ViewContext.Controller.ViewBag.Property
于 2013-10-22T13:52:04.567 に答える