我遇到以下問題。我設置MVC SiteMap,但有一個節點,我需要保存(保存)參數。技術上的問題解釋說:MVC SiteMap父級參數未保存
我有途徑:代理/清單/模板,從那裏我打開特定的模板, 代理/清單/ EditTemplate/1(其中1是id) 然後從那裏我打開新頁面是代理/流程/添加
在最後一頁我有面包屑: 模板>編輯模板>添加過程
,現在我想,當我點擊編輯模板,方便我重定向到代理/清單/ EditTemplate/1
我試着在Action上放置SiteMapPreserveRouteData裝飾器,但它說它已經過時。
這裏是我的Mvc.sitemap
<mvcSiteMapNode title="Templates" controller="Checklists" action="Templates" area ="Agent">
<mvcSiteMapNode title="Edit Template" controller="Checklists" action="EditTemplate" area="Agent" preservedRouteParameters="id">
<mvcSiteMapNode title="Add Process" controller="Processes" action="Add" area="Agent" preservedRouteParameters="id, id" />
<mvcSiteMapNode title="Process Configuration" controller="Processes" action="Edit" area="Agent" preservedRouteParameters="token" />
</mvcSiteMapNode>
</mvcSiteMapNode>
感謝
閱讀了一些文檔後,我明白了RouteParameters的工作原理。但是我們有這樣一種系統,父母有一個id,子節點有另一個id。然後我想到保存自定義屬性並重寫SiteMapNodeModel.cshtml來正確構建url,但沒有運氣,它會記住當前請求的屬性,但是當我在孩子中關閉時,父項的屬性會丟失。我必須承認,我對這個功能提供的功能並不滿意,因爲我需要的只是一個堆棧,而且這些路由的調用方式完全相同。 –
沒有什麼能夠阻止您對rollersRouteParameters進行開溝操作,併爲每個值添加一個節點(默認行爲),這就是我提到動態節點提供者的原因。 preservedRouteParamters只在特定條件下工作 - 其中之一是整個血統不得複製相同的路由密鑰。如果您正在執行CRUD操作,它會更好地擴展,但靈活性較差。 – NightOwl888
嗯,業務情況如下: 我打開一些模板與一些ID,然後從那裏我打開一個令牌(不同於模板令牌)的過程。 此外我有以下情況: 人檔案>就業>工作>終止工作,他們都有不同的ID參數,我沒有看到任何可能的選項來解決這個問題。 所以我正在看你的動態例子,但這隻能解決我的一個級別。而且我在系統中有很多地方需要實現這個功能,所以它有種靜態寫入的能力。 –