在web.config文件中改进UIPAB导航
问题描述:
我正在做一些公司遗留项目的工作,并且我想清理一个相当大的web.config文件部分。有问题的部分是使用UIPAB的视图导航。有大约51个不同的页面导致2,200行代码出现在2,500行web.config文件中。我花了相当长的时间才弄清楚为什么有这么多的重复。在web.config文件中改进UIPAB导航
从我如何理解它,每个页面被列为一个视图,然后每个视图必须具有所有可访问的链接下面在该视图的节点中详细说明。
我可以理解为什么每个页面都有一个,但是对于每个页面都有自己的节点充满重复的链接是没有意义的(对我而言)。在我的情况下,导航不会在不同的页面之间发生变化,所以为什么我不能在一次列出值并完成它。
<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>
是否有反正我可以把它降低到更合理的尺寸?
答
因此经过数周的研究和努力,我终于找到了自己想找的东西。 UIPAB有sharedTransitions。它在一个名为UIPAB.pdf的文档中,我通过谷歌搜索找到它。这是第134页的第67页,这让我可以做到这一点。目前我还没有想出如何去除节点和内部需要的单个条目。这个答案可以帮助那些有同样问题的人,但还不是最终的解决方案。如果我解决(或有人帮助解决)这部分,我会更新答案。
<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>
这让我减少导航下从每个页面需要一个链接到其他每一页,每一页需要一个链接到一些页面(IM使用不包含在sharedTransitions一个多数民众赞成)。所以它现在大约有5行(一个在视图中,一个在sharedTransitions中,另一个在节点中),而不是页面*页面。它并不完美,但由于节点仍然存在,但它向前迈进了一大步。