0

Razor View に次のようなタブ ストリップがあります。

    @(Html.Kendo().TabStrip()
          .Name("tabstrip")
          .Items(tabstrip =>
          {
              foreach (var tab in @Model.Tabs.Values)
              {
                  tabstrip.Add().Text(tab.Title)
                  .LoadContentFrom(tab.Title.Replace(" ", string.Empty), "Account"); //remove spaces for action methods
              }
          })
    )

コントローラーは、各タブの部分ビューを返します。メイン ビューは、タブと呼ばれるディクショナリを持つ AccountViewModel と呼ばれるビュー モデルにバインドされます。タブは、個々のタブごとに文字列を ViewModel にマップします。

foreach ループの各反復で、tabは実際には、読み込まれているラボにバインドしたい ViewModel です。

ViewModel、たとえば、Tabs["tabA"] を LoadContentFrom("tabA", "Account"); によって返される部分ビューにバインドする方法はありますか?

4

1 に答える 1

0

いいえ、タブは ajax リクエストによって読み込まれるため、これは実行できません。部分的な結果を返すアクション メソッドは、その部分ビューのモデルを適切に設定する必要があります。

もう 1 つのオプションは、LoadContentFrom の使用を避けることです。

foreach (var tab in @Model.Tabs.Values)
{
   tabstrip.Add().Text(tab.Title)
           .Content(@Html.Partial(/* partial view name */ tab.Title, /* view model */ tab));        
}
于 2013-08-18T07:16:23.633 に答える