2013年3月18日 星期一

asp.net MVC 與 Extjs的類別路徑整合問題

asp.net 的MVC與extjs的類別整合時,要小心的是把js的資料夾當做是個「control」
這時,只要用router.Ignore的方式來閃避就可以了.
(在app_start資料夾中的RouteConfig.cs加入設定)

另外,我們有必要把一些類別整合出來成為可以常常利用的模型(尤其是model & store)
以下圖:
 我們把store/view/model...這類可能日後在不同單元都會用到的extjs類別都放在一個「ExtjsPackage」資料夾中,並把所有的js依其namespace佈署之
那,在asp.net MVC的view類別中,如果取用?
 除了在_Layout.cshtml中要把ext-all.js & ext的css incluse之外
在asp.net MVC 的view javascript.中,要加上「Ext.Loader.setPath」設定相對關係,以下以範例:
==================================================================
       Ext.onReady(function () {
           Ext.QuickTips.init();
           Ext.Loader.setPath('ExtjsPackage', '/BodhiRestaurantMng/ExtjsPackage');
           var obj = Ext.create('ExtjsPackage.view.pnlContainAll', {
               renderTo: 'MainPanel2PlaceEdit'
           });
       });
========================================================
如果沒有Ext.Loader.setPath的話,在指令「Ext.create('ExtjsPackage.view.pnlContainAll'」時,系統會request的路徑變成「BodhiRestaurantMng/ExtjsPackage/view/pnlContainAll.js」
就會產生404錯誤了
回頭來設定RouteConfig中,是加入這一行:
「 routes.Ignore("ExtjsPackage/{*pathInfo}");」
以上,大家加油吧!!

沒有留言:

張貼留言