1

Xaml コントロールを Sitecore インスタンスに追加しましたが、何らかの理由でOnly one <CodeBeside> tag is allowed on each page例外が返されます。問題は、アプリケーションに CodeBeside タグが 1 つしかなかったことです (以下を参照)。1 つの CodeBeside タグを削除しようとしても、同じ問題が発生します。これを解決するにはどうすればよいですか?

<control xmlns:def="Definition"
         xmlns="http://schemas.sitecore.net/Visual-Studio-Intellisense">
  <doThingy>
    <FormDialog Icon="Business/32x32/messages.png"
                Header="Thingy-doer"
                Text="Double-click each comment to edit or delete."
                OKButton="Close"
                CancelButton="false">
      <CodeBeside Type="Name.space.layout.layouts.Xaml.Dothingy.CommentsDisplayCodeBeside,CHLIHB.Web" />
      <div>Showing comments from between these dates:</div>
      <div style="outer-datepicker">
        <DatePicker ID="DateLowerBound"
                    Width="50%" />
        <DatePicker ID="DateUpperBound"
                    Width="50%" />
        <div style="clear:both" />
      </div>
      <div>
        <Scrollbox>
          <Listview ID="ThingyListItems"
                    View="Details"
                    Width="100%"
                    Background="white"
                    DblClick="nm:doubleclick"
                    Click="nm:headerclick">
            <ListviewHeader id="IndexHeader">
              <ListviewHeaderItem Name="userName"
                                  Header="User Name" />
              <ListviewHeaderItem Name="datePosted"
                                  Header="Date Posted" />
              <ListviewHeaderItem Name="contentTitle"
                                  Header="Article Title" />
              <ListviewHeaderItem Name="commentExcerpt"
                                  Header="Excerpt" />
            </ListviewHeader>
          </Listview>
        </Scrollbox>
      </div>
    </FormDialog>
  </doThingy>
</control>
4

1 に答える 1

1

最も考えられる原因は 2 つあります。

  • プロジェクト内でコントロールを移動しました
  • おそらく、web.config に特定の十分なcontrolSourcesノードがなく、古いバージョンの Xaml コントロールが検出されています。2 番目に見つかったコントロールを Sitecore が無視する場合もあれば、両方を解析しようとする場合もあるようです (したがって、例外)。

ソースが移動された後に残された Xaml ファイルが Visual Studio によってクリーンアップされるという保証はないことに注意してください。これは、一般的に、これは悪いポリシーであり、避けるべきであることを意味します。

<source mode="on" namespace="Sitecore.Web.UI.XmlControls" 
        folder="/layout" deep="true" />

代わりに、特定のフォルダーを指していることと、(理想的には) 次のものがあることを確認してくださいdeep="false"

<source mode="on" namespace="Sitecore.Web.UI.XmlControls" 
        folder="/layout/layouts/Xaml/Dothingy" deep="false" />

これは、より多くのノードを含めることを意味する場合がありますsourceが、実際には全体的な安定性が向上します。

于 2013-04-17T18:12:34.317 に答える