ItemResolverの後にカスタムパイプラインプロセッサを挿入して、ドロップダウンリストからコンテンツエディタで選択した新しいアイテムを現在のコンテキストアイテムに上書きします。リダイレクトなしでsitecoreアイテムを変更する
私は私のウェブサイトを通じて、私のプロセッサを介して通常のリクエストを経由してそのダイナミックな項目に移動し、私は私のコンテキスト項目を変更すると、それはSTIL同じ項目レンダリングされます:私が発行した場合、不思議
public override void Process(HttpRequestArgs args)
{
// some code
Context.Item = dropLink.TargetItem;
}
をアイテムのAPIを介して要求、サイトコアは、ここで成功し
//api call
Context.Item = Context.Database.SelectSingleItem("fast:/sitecore/content/mysite/dynamicitem");
項目は私の設定ファイルで変更します。
<pipelines>
<httpRequestBegin>
<processor patch:after="* @type='Sitecore.Pipelines.HttpRequest.ItemResolver, Sitecore.Kernel']" type="MyDll.Web.Pipelines.LandingPageResolver,MyDll.Web" />
</httpRequestBegin>
</pipelines>
itemresolverの前にパッチを適用することはできますか? –
同じプロセッサでは、いくつかのAPI呼び出しを行い、項目が影響を受けると言っていますか?また、dropLink.TargetItemの代わりにSelectSingleItemを実行すると、API呼び出しなしでSelectSingleItemをテストできますか? – RvanDalen
私はプロセッサでAPI呼び出しを行いません。たとえば、ブラウザからアイテムのAPI呼び出しを発行し、プロセッサ内でコンテキストアイテムをランダムに変更して、コンテキストアイテムを正常に変更できます。 SelectSingleItemでテストしましたが、成功しませんでした。 – vel