4

我很怀疑我的问题会得到回答,但我会在这里尝试,因为我的挫败感非常高,也许它会帮助我自己降低它们!

所以,我想做的是:

  • 从头开始安装 VS2012(好的,单击 .exe 并开始!)
  • 创建一个新的 MVC4 项目
  • 使用 Razor View Engine(现在是默认设置)
  • 使 EXT.NET 2.0 与上述内容一起工作

这将是 Ext.NET 2.1 的一个特性,因为所有需求都将打包在一个 nuGet 包中,唯一的问题是我,因为其他少数开发人员希望使用那些现在已经可以使用的东西

我现在成功做的事情:

  • 按照这个线程,我已经正确设置了 web.config!
  • 让VS2012识别Ext.Net引用

就是这样:

  • 新建项目,选择Basic/Empty/Internet Application templates
  • 在项目的资源中,添加对 Ext.NET.dll 的引用(浏览、查找等)
  • 以这种方式编辑 web.config:

http://diffchecker.com/v99ScX0x

  • 以这种方式编辑 Views/web.config:

http://diffchecker.com/7UEK058Y

我希望 diffchecker 足够清楚让您理解,无论如何更改在两个文件中都是相同的,它们必须如此!

  • 在 App_Start/RouteConfig.cs 中添加以下行

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

  • 现在我继续关注我上面链接的线程
  • 创建名为“Examples”的受控对象 -> ExamplesController.cs,此处无需修改
  • 创建上述控制器的视图。所以 Views/Examples/Index.cshtml

在那里,我对页面进行了一些编辑,使其更具 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 用 StoreResult替换 AjaxStoreResult
  • DataController.cs 也需要

    使用 Ext.Net.MVC;

所以我在这里!
如果您现在启动 IIS Express,您可以在 localhost:XXXXX/Examples/ 中执行页面

我遇到的第一个问题是:页面尝试加载 localhost:XXXX/extjs/ 库,这不是 MVC 样式!

这是由@Html.X().ResourceManager() 完成的,有办法让它连接到cdn 库吗?甚至改变路径!???

之后可能会出现其他问题,但现在我想解决这个痛苦的小问题

4

1 回答 1

8

根据您上面链接到的 Web.config 文件,我认为您缺少 Web.config 中的必需<modules><handlers>部分。所需的 Web.config 部分在 README.txt 中列出。

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

这是示例 Web.config 中的相应<system.webServer>部分。

例子

<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.NET ResourceManager 呈现所需的 .js 和 .css 文件.RenderStyles(ResourceLocationType.None)

例子

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

ResourceLocationType.None您可以通过将属性更改为 来配置 ResourceManager 以加载 CDN 文件ResourceLocationType.CDN

希望这可以帮助。

于 2012-10-12T18:03:22.963 回答