0

以下のナビゲーションルールがある場合:

<navigation-rule>
    <from-view-id>Mainview</from-view-id>
    <navigation-case>
        <from-outcome>outcome1</from-outcome>
        <to-view-id>view1</to-view-id>  
    </navigation-case>
    <navigation-case>
        <from-outcome>outcome2</from-outcome>
        <to-view-id>view2</to-view-id>  
        <redirect/>         
    </navigation-case>
    <navigation-case>
        <from-outcome>outcome3</from-outcome>
        <to-view-id>view3</to-view-id>  
        <redirect/>         
    </navigation-case>
</navigation-rule>

このフロー全体で検証エラーがなければ、すべて正常に動作します。あれは :

ステップ 1) MainForm のメソッドはビュー 1 をレンダリングする結果 1 を返します ステップ 2) ビュー 1 のメソッドはビュー 2 をレンダリングする結果 2 を返します

上記のルールにはリダイレクトがないことに注意してください。つまり、ブラウザのウィンドウに Mainview が表示されます。

上記のステップ 2 で検証が失敗した場合、ブラウザは view2 を表示する代わりに、アドレス バーに view1 を表示します。

さて、次のフロー (検証が成功したら) では、開始点は Mainview ではなく、view1 を意味するため、ナビゲーション ケースは view1 で記述する必要があります。

これはどのように処理できますか?ナビゲーション ルールの別のセットを記述する必要がありますか? または、上記のようなナビゲーション ルールの設計は明らかに間違っていますか?

4

1 に答える 1

0

仕様を見ると、<from-view-id>各 に 1 つのタグしか存在できないと結論付けなければなりません<navigation-rule>

from-view-id:完全なページ識別子 (ページへの状況依存の相対パス) またはアスタリスク (*) ワイルドカード文字で終わるページ識別子プレフィックスのいずれかを含むオプションの要素。ワイルドカード文字を使用すると、ルールはワイルドカード パターンに一致するすべてのページに適用されます。すべてのページに適用されるグローバル ルールを作成するには、この要素を空白のままにします。

このタグはオプションであるため、指定することも指定しないこともできます。ワイルドカード ビュー ID を指定することもできるため、ナビゲーション ケースはパターンに関連するすべてのビュー ID をカバーしますが、ルールごとに 1 つしか指定できません。したがって、あなたの場合、次のオプションがあります。

  • から始まるナビゲーション ケースを管理する新しいナビゲーション ルールを作成しますview1
  • ビュー ID をパターンで覆い、ワイルドカードを使用してそれらをグループ化します (最初のページに view0という名前を付けます)。

    <navigation-rule>
         <from-view-id>view*</from-view-id>
         <navigation-case>
         <from-outcome>outcome1</from-outcome>
         <to-view-id>view1</to-view-id>  
    </navigation-case>
    <navigation-case>
        <from-outcome>outcome2</from-outcome>
        <to-view-id>view2</to-view-id>  
        <redirect/>         
    </navigation-case>
    <navigation-case>
        <from-outcome>outcome3</from-outcome>
        <to-view-id>view3</to-view-id>  
        <redirect/>         
    </navigation-case>
    

  • 割り当てないで、実際にfrom-view-idいるすべての場合に機能させてview-idください。ケースごとに異なる結果を使用しても問題はありません。
于 2013-02-22T18:41:16.497 に答える