MVC + ExtJSには、アクセス制御を実現使用して、プロジェクトをコントローラ内のActionResultに基づいており、次の2つの新しいのActionResultを作成する必要があり、異なるパラメータによるページがあります。
ページレベルではなく、データレベルに基づいており、なぜ私に聞かないでください、私は、これは歴史から残された問題であることを言いたいです。
今、私たちが問題に直面している、よく知られているが、2つのActionResult 2つのページが同じJSファイルを共有しており、このファイルはExtJSにある、ExtJSにはドムがExt.getCmp(「」)を介して取得することになってしまう、そして、唯一のオリジナルID・ページは現在固有のものではないとなり、イベントは混乱を呼び出します。
昨日は数年のためのソリューションを求めていました。
方法1:ユニークなIDを生成するために、ページパス+ Idが接尾辞を取得します。
実際、ケースされています。
次のようにコードがあります。var URL = window.location.href;
結果を取得し、取得した代わりに、現在のプレーンパスで、ExtJSのフレームワークページのパスです。
方法2:ページがロードされると、ID +同上のGuidサフィックスの自動生成されたクラスは、ユニークなIDを生成します。
練習はいけない、それは理論的には可能です。
方法3:LogisticsMgr / MatRequireView.aspx.js MatType = 111:などの使用のJSサフィックス送信パラメータ、?
私たちは、その後、各コントロール+ Idをサフィックスは、ユニークなIDを生成し、111を取得します。
ウェイズ:
Ext.namespace( "JsHelper" ); // 获得JS文件后面的参数如test.js?ユーザー= WUFはwufei 2013年10月25日によって作成 JsHelper.GetJsParamValue = 機能(パラメータ){ VARの RNAME = 新しい正規表現(「(\\?(。*))? $」) するvar JSS = document.getElementsByTagName( 'スクリプト' )。 用(VAR i = 0; I <jss.length; iは++ ){ VARの j個の=のJSS [I]を、 もし(j.src && j.src.match(RNAME)){ VARの OO = j.src.match(RNAME)[2 ]。 もし(OO &&(T = oo.match(/([^&=] +)=([^ =&] +)/G))){ 用(VARは L = 0、L <t.length; L ++ ){ R = T [L]。 VaRの TT = r.match(/([^&=] +)=([^ =&] +)/ )。 もし(TT && TT [1] ==のPARAM)戻り TT [2 ]。 } } } } 戻り '' 。 }
メソッド呼び出します。var idPre = JsHelper.GetJsParamValue( "MatType");
これまでのところ、問題が解決され、ステートメントIDとアクセスIDは、すべてのそれに加えて可変です。
注意:このプログラムはJsのは一度だけロードされているため無効であるので、パラメータのページを開いた後が正しくありません。
我々は、適切な指導・ソリューションを願っています。
ます。https://www.cnblogs.com/ushou/p/3387299.htmlで再現