我很怀疑我的问题会得到回答,但我会在这里尝试,因为我的挫败感非常高,也许它会帮助我自己降低它们!
所以,我想做的是:
- 从头开始安装 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 库吗?甚至改变路径!???
之后可能会出现其他问题,但现在我想解决这个痛苦的小问题