若堅持反覆研究之前的步驟,到了這裡,相信你不再對c#mvc懵懵懂懂了。進行到這裡也漸漸接觸到核心了。不得不停下業務,單開一篇講述一下我們這個demo是如何載入選單,顯示到easyui的tree上面的。實現方式有很多種,但是原理基本一致,
獲取資料源,繫結資料來源,顯示(看著很廢話,好像什麼也沒告訴你,其實已經將最本質的告訴了你…)實際上很多控制項和技術就是基於這個實現的。大部分東西,只要你到他的資料來源在哪,繫結方式是什麼,基本沒什麼東西是難理解的,無非是應用了新的框架或是技術,這個東西網上檢索很容易得到解決方案。所以當你遇到乙個問題的時候問問自己,資料來源在哪。很多問題迎刃而解。(小小程式設計師的亂語,大牛請自動過濾)。
閒言不語,我們是通過xml檔案獲取選單資訊,然後讀取xml資訊,將其拼接成html,然後在easyui的tree控制項上,可以直接顯示。以我淺薄的知識來看,是比較簡單的一種實現方式,並且減輕了伺服器上資料庫的一些壓力,因為大部分使用者的選單很少變更,所以這種實現方式,雖然實現起來頗為麻煩,但是還是有一定優勢的。當然最終的資料來源是資料庫的表了,這裡的xml你可以理解為一種快取機制。
因為我剛剛建的資料庫,裡面並沒有資訊,所以我這裡自己建立乙個xml檔案,手動模擬幾個選單,等全部專案寫完之後,我會回頭將這一塊獲取選單的**重寫,那時候你應該會有一種,哦,原來如此 的感覺。
xml檔案:
我來稍作分析: :父節點(其實不應該這麼叫,但是相對於選單結構,它是父節點,為了避免你們混亂),放置一級選單節點,一級選單,沒有太多意義,只是對下面的選單的乙個分類。
:子節點,放置二級選單節點,這個才是真正具有跳轉鏈結的選單項。使用者根據其具有的url屬性,點選後跳轉到相應的action,返回至相應的檢視。
我們了解了程式是根據xml載入資料的,那麼如何繫結呢?
這裡在common中,抽取了乙個解析xml的方法,將xml的資訊最終拼接成一段html片段,返回給檢視,然後檢視進行展示。
public static string loadmenuxml(string xmlpath)
doc.load(xmlpath);
xmlelement root = doc.documentelement;
for (int i = 0; i < root.childnodes.count; i++)
"); }
return usermenu;
}
對於沒有接觸過xml的朋友,這裡可以稱為乙個技術難點吧,我如果說讓你們自己網上檢索,會不會被噴?,這裡我稍作解釋:
xmldocument doc = new xmldocument();
建立乙個xml物件,引入system.xml的dll即可使用。
doc.load(xmlpath);
根據路徑載入xml到物件中,這個路徑是乙個完整的路徑哦,包含檔案物理路徑和檔名,檔案字尾。這裡大牛應該看出來了,對這個檔案是放在伺服器上。這樣會對伺服器造成一定的壓力(當使用者過多時),但是相比較那些對資料庫使用頻繁的系統,可以犧牲記憶體換取執行速度。
xmlelement root = doc.documentelement;
獲取根節點,也就是我們上面的節點。然後便利根節點下面的父節點(對於xml檔案應該稱為子節點)
xmlnode hnodel = root.childnodes.item(i);
usermenu += string.format(「
public actionresult home()
那麼這個usermenupath 在**設定的呢?是在web下面的config檔案中設定:
這樣,我們還需在自己本地建立相應為問價夾,將剛剛的xml檔案放進去,注意xml的命名哦,是以user_maser_id做的名字,這樣可以唯一標示該使用者的登入選單。
還要講我們之前在頁面注釋的tree放開哦:
最終顯示:
C MVC4基礎(一)(建立,初始頁面,傳值)
建立mvc4專案 開啟vs2012 檔案 新建 專案 visual c web asp.net mvc 4 web應用程式 確定 可更改名稱,位置,解決方案名稱 模板可選擇空,基本 自動生成目錄 或者internet應用程式 自動生成應用程式 檢視引擎預設razor 確定 建立成功 ps 據說建立基...
C MVC4 執行特性之後不再執行Action
關鍵地方,在onactionexecuting函式中,不能使用filtercontext.httpcontext.response.redirect url 來定向,打斷點可以發現一樣會執行action裡面 應該設定filtercontext.result來控制轉向。進入action4 進入acti...
linux管理和程序(4)
selinux 由美國 局開發的,security enhanced linux的縮寫。傳統的檔案許可權與賬號關係 自主訪問控制 dac,就是一句程序的所有者與檔案資源的rwx許可權來決定有無訪問能力 這種dac的缺點 root具有最高許可權,可以在系統上進行任何資源的訪問 使用者可取得程序來更改檔...