4

私の質問が答えられるかどうか非常に疑問がありますが、私の欲求不満のレベルが非常に高いので、おそらくそれを下げるのに役立つので、ここで試してみます!

だから、私がやりたいことは次のとおりです。

  • VS2012 を最初からインストールします (OK、.exe をクリックして実行してください)。
  • 新しい MVC4 プロジェクトを作成する
  • Razor View Engine を使用します (現在はデフォルトです)。
  • EXT.NET 2.0 を上記で動作させる

これは Ext.NET 2.1 の機能になる予定です。すべての要件が nuGet パッケージでパケット化されるためです。唯一の問題は、他の少数の開発者が、現在既に機能している機能を使用したいと考えていることです。

私が今成功したこと:

  • このスレッドに従って、 web.config を正しくセットアップしました。
  • VS2012 に Ext.Net 参照を認識させる

方法は次のとおりです。

  • 新しいプロジェクトを作成し、基本/空/インターネット アプリケーションテンプレートを選択します
  • プロジェクトのリソースで、Ext.NET.dll への参照を追加します (参照、検索など)。
  • 次のように web.config を編集します。

http://diffchecker.com/v99ScX0x

  • Views/web.config を次のように編集します。

http://diffchecker.com/7UEK058Y

とにかく、変更は両方のファイルで同じであり、そうでなければなりません!

  • App_Start/RouteConfig.cs に次の行を追加します。

routes.IgnoreRoute("{exclude}/{extnet}/ext.axd");

そこで、ページを少し編集して、もう少し MVC スタイルにしました。実際にはそれほど大きなものではありません。ページ全体は次のとおりです。

@{
    ViewBag.Title = "Infinite Scrolling - Ext.NET Examples";
}

@Html.X().ResourceManager()

<h1>Infinite Scrolling</h1>
<p>The brand new GridPanel supports infinite scrolling, which enables you to load any number of records into a grid without paging.</p>
<p>The GridPanel uses a new virtualized scrolling system to handle potentially infinite data sets without any impact on client side performance.</p>
<br />

@(Html.X().GridPanel()
    .Title("Stock Price")
    .Height(500)
    .Width(500)
    .InvalidateScrollerOnRefresh(false)
    .DisableSelection(true)
    .Store(store => store.Add(Html.X().Store()
        .PageSize(100)
        .Buffered(true)
        .AutoLoad(false)
        .Proxy(proxy => proxy.Add(Html.X().AjaxProxy()
                    .Url("/Data/GetData/")
                    .Reader(reader => reader.Add(Html.X().JsonReader()
                                .Root("data")
                            ))
                    ))
        .Model(model => model.Add(Html.X().Model()
                    .Fields(fields => {
                        fields.Add(Html.X().ModelField().Name("Company")); 
                        fields.Add(Html.X().ModelField().Name("Price"));
                        fields.Add(Html.X().ModelField().Name("LastUpdate").Type(ModelFieldType.Date));
                    })
                ))
        ))
    .VerticalScroller(scroller => scroller.Add(Html.X().GridPagingScroller()))      
    .ColumnModel(columnModel => {
        columnModel.Columns.Add(Html.X().RowNumbererColumn().Width(50).Sortable(false));
        columnModel.Columns.Add(Html.X().Column()
                                        .Text("Company")
                                        .DataIndex("Company")
                                        .Flex(1));
        columnModel.Columns.Add(Html.X().Column()
                                        .Text("Price")
                                        .DataIndex("Price")
                                        .Width(70));
        columnModel.Columns.Add(Html.X().DateColumn()
                                        .Text("LastUpdate")
                                        .DataIndex("LastUpdate")
                                        .Width(140)
                                        .Format("HH:mm:ss"));
    })
    .View(view => view.Add(Html.X().GridView().TrackOver(false)))
    .Listeners(listeners => {
        listeners.AfterRender.Handler = "this.store.guaranteeRange(0, 99);";
        listeners.AfterRender.Delay = 100; 
    })
)
  • 次に、スレッドが言うように、それを機能させるために別のコントローラーを追加しました
  • ここで参照 されているように DataController.cs を追加しますSUBSTITUING AjaxStoreResult WITH StoreResult
  • DataController.cs も必要です

    Ext.Net.MVC を使用。

だから私はここにいます!
ここで IIS Express を起動すると、localhost:XXXXX/Examples/ のページを実行できます。

私が持っている最初の問題は、ページが localhost:XXXX/extjs/ ライブラリを読み込もうとすることです。これは MVC-STYLE ではありません! これは @Html.X().ResourceManager() によって行われます。cdnライブラリ

に接続する方法はありますか? またはパスを変更します!??

その後、おそらく別の問題が発生するでしょうが、今のところ、この小さな痛い問題を解決したいと思います

4

1 に答える 1

8

<modules>上記でリンクしたWeb.configファイルに基づいて、Web.configの必須セクションとセクションが欠落していると思います<handlers>。必要なWeb.configセクションは、README.txtにリストされています。

http://examples.ext.net/#/Getting_Started/Introduction/README/

<system.webServer>これがサンプルWeb.configの適切なセクションです。

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <add 
            name="DirectRequestModule" 
            preCondition="managedHandler" 
            type="Ext.Net.DirectRequestModule, Ext.Net" 
            />
    </modules>
    <handlers>
        <add 
            name="DirectRequestHandler" 
            verb="*" 
            path="*/ext.axd" 
            preCondition="integratedMode" 
            type="Ext.Net.ResourceHandler"
            />
    </handlers>
</system.webServer>

次の引用で「MVC-STYLEではない」とはどういう意味かわかりません。もっと説明してもらえますか?

私が抱えている最初の問題は、ページがlocalhost:XXXX / extjs /ライブラリを読み込もうとしていることです。これは、MVCスタイルではありません。

.RenderScripts(ResourceLocationType.None)とを設定することにより、Ext.NETResourceManagerが必要な.jsファイルと.cssファイルをレンダリングしないようにすることができます.RenderStyles(ResourceLocationType.None)

@Html.X().ResourceManager()
    .RenderScripts(ResourceLocationType.None)
    .RenderStyles(ResourceLocationType.None)

ResourceLocationType.None属性をに変更することで、CDNファイルをロードするようにResourceManagerを構成できますResourceLocationType.CDN

お役に立てれば。

于 2012-10-12T18:03:22.963 に答える