加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何在VS2012 MVC4项目中设置Ext.NET 2.0?

发布时间:2020-12-16 07:18:44 所属栏目:asp.Net 来源:网络整理
导读:我怀疑我的问题会得到解答,但我会在这里尝试,因为我的挫折程度如此之高,以至于它可能会帮助我自己降低它们! 所以,我想做的是: 从头开始安装VS2012(okey,单击.exe然后继续!) 创建一个新的MVC4项目 使用Razor View Engine(现在是默认设置) 让EXT.NET 2.0与
我怀疑我的问题会得到解答,但我会在这里尝试,因为我的挫折程度如此之高,以至于它可能会帮助我自己降低它们!

所以,我想做的是:

>从头开始安装VS2012(okey,单击.exe然后继续!)
>创建一个新的MVC4项目
>使用Razor View Engine(现在是默认设置)
>让EXT.NET 2.0与上面一起工作

This is gonna be a feature of Ext.NET 2.1,因为所有要求都将在nuGet包中打包,唯一的问题是我,因为其他少数开发人员想要使用那些已经可以正常工作的东西

我现在成功做了什么:

>在这个thread之后我正确设置了web.config!
>使VS2012识别Ext.Net参考

这是如何做:

>创建新项目,选择基本/空/ Internet应用程序模板
>在项目的资源中,添加对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”);

>现在我继续关注我linked above的主题
>创建受控命名的“示例” – > 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添加为referred here使用StoreResult替换AjaxStoreResult
> DataController.cs也需要

使用Ext.Net.MVC;

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

我遇到的第一个问题是:页面试图加载localhost:XXXX / extjs / libraries,这不是MVC-STYLE!
这是由@ Html.X().ResourceManager()完成的,有一种方法可以连接到cdn libraries吗?甚至改变路径!??

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

解决方法

基于您链接到上面的Web.config文件,我认为您缺少必需的< modules>和<处理程序> Web.config中的部分. README.txt中列出了所需的Web.config部分.

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”在下面的引用中是什么意思.你能提供更多解释吗?

First issue i have is: the page tries to load localhost:XXXX/extjs/ libraries,that’s NOT MVC-STYLE!

您可以通过设置.RenderScripts(ResourceLocationType.None)和.RenderStyles(ResourceLocationType.None)来阻止Ext.NET ResourceManager呈现所需的.js和.css文件.

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

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

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读