改进web.config文件中的UIPAB导航

时间:2017-08-02 19:19:12

标签: asp.net xml navigation web-config

我正在为公司遗留项目做一些工作,而且我想要清理一个相当大的web.config文件部分。有问题的部分是使用UIPAB的视图导航。在2,500行web.config文件中,大约有51个不同的页面导致2,200行代码。我花了相当多的时间来弄清楚为什么会有这么多的重复。

从我如何理解它,每个页面都列为一个视图,然后每个视图必须在该视图的节点中具有下面详述的所有可访问链接。

我可以理解为什么每个页面都有一个,但是对于每个页面都有自己的节点充满重复链接是没有意义的(在我的情况下)。在我的情况下,导航不会在不同的页面之间进行更改,所以为什么我只能在一次列出值并完成它。

<views>
<view name="section1" type="section1/home.aspx" controller="section1controller" />
<view name="section1one" type="section1/one.aspx" controller="section1controller" />
<view name="section1two" type="section1/two.aspx" controller="section1controller" />
<view name="section2" type="section2/home.aspx" controller="section2controller" />
<view name="section2one" type="section2/one.aspx" controller="section2controller" />
<view name="section2two" type="section2/two.aspx" controller="section2controller" />
</views>
<node view="section1">
<navigateTo navigateValue="section1" view="section1" />
<navigateTo navigateValue="section1one" view="section1one" />
<navigateTo navigateValue="section1two" view="section1two" />
<navigateTo navigateValue="section2" view="section2" />
<navigateTo navigateValue="section2one" view="section2one" />
<navigateTo navigateValue="section2two" view="section2two" />
</node>
<repeat above 5 more times for each other view>

无论如何,我可以将其减少到更合理的尺寸吗?

1 个答案:

答案 0 :(得分:0)

经过数周的研究和努力,我终于找到了我想要的东西。 UIPAB有shareTransitions。它是在一个名为UIPAB.pdf的文档中,我通过谷歌搜索找到了它。这是第134页的第134页,这是允许我这样做的。目前我还没有弄清楚如何删除节点和内部所需的单个条目。这个答案将帮助那些遇到同样问题,但还不是最终解决方案的人。如果我解决(或有人帮助解决)这部分,那么我将更新答案。

<views>
   <view name="section1" type="section1/home.aspx" controller="section1controller" />
   <view name="section1one" type="section1/one.aspx" controller="section1controller" />
   <view name="section1two" type="section1/two.aspx" controller="section1controller" />
   <view name="section2" type="section2/home.aspx" controller="section2controller" />
   <view name="section2one" type="section2/one.aspx" controller="section2controller" />
   <view name="section2two" type="section2/two.aspx" controller="section2controller" />
</views>
<navigationGraph iViewManager="" name="" state="" statePersist="" startView="" cacheExpirationMode="" cacheExpirationInterval="">
<sharedTansitions>
   <sharedTansition navigateValue="section1" navigateTo="section1" />
   <sharedTansition navigateValue="section1one" navigateTo="section1one" />
   <sharedTansition navigateValue="section1two" navigateTo="section1two" />
   <sharedTansition navigateValue="section2" navigateTo="section2" />
   <sharedTansition navigateValue="section2one" navigateTo="section2one" />
</sharedTransitions>
<node view="section1"><navigateTo navigateValue="section2two" view="section2two" /></node>
<node view="section1one"><navigateTo navigateValue="section2two" view="section2two" /></node>
<node view="section1two"><navigateTo navigateValue="section2two" view="section2two" /></node>
<node view="section2"><navigateTo navigateValue="section2two" view="section2two" /></node>
<node view="section2one"><navigateTo navigateValue="section2two" view="section2two" /></node>
<node view="section2two"><navigateTo navigateValue="section2two" view="section2two" /></node>
</navigationGraph>

这允许我减少从需要链接到每个其他页面的每个页面的导航,每个页面需要一个链接到某个页面(我使用一个不包含在sharedTransitions中的页面)。所以它现在大约有5行(一个在视图中,一个在sharedTransitions中,3个在节点中)而不是页面*页面。由于节点仍然存在,它还不完美,但它向前迈出了一大步。