Asp.net mvc 4 基于多页应用程序的ExtJS和ASP.netmvc4
->问题在文章的末尾 我想在带有ASP.NET MVC的多页应用程序上使用ExtJs。我知道MVC的一个目的是构建干净、快速的HTML页面,但我们只能说我必须使用ExtJs 考虑到ExtJs主要是一个面向单页应用程序的框架,我必须找到一种方法让它在多页应用程序上工作 因此,我的布局页面如下所示: App.js是我的应用程序启动程序,简化后的外观如下: 现在,主控制器中的索引视图和任何其他视图如下所示: 因此,我的视口包含一个带有标签的面板,其中有一个标签。在使用该属性渲染标签后,我确信可以通过调用BuildActionHTML在其中开始渲染视图 一,。我的问题是这种方法有多糟糕,因为我确信它并不优雅。我可能会遇到什么问题?优点/缺点是什么 二,。另外,我如何定制ext-all.js以仅使用我在应用程序中使用的类和组件,从而减小其大小。我不认为我可以用sencha cmd来解决这个问题,因为我的应用程序架构或缺乏它 多谢各位Asp.net mvc 4 基于多页应用程序的ExtJS和ASP.netmvc4,asp.net-mvc-4,extjs,web-applications,architecture,multipage,Asp.net Mvc 4,Extjs,Web Applications,Architecture,Multipage,->问题在文章的末尾 我想在带有ASP.NET MVC的多页应用程序上使用ExtJs。我知道MVC的一个目的是构建干净、快速的HTML页面,但我们只能说我必须使用ExtJs 考虑到ExtJs主要是一个面向单页应用程序的框架,我必须找到一种方法让它在多页应用程序上工作 因此,我的布局页面如下所示: App.js是我的应用程序启动程序,简化后的外观如下: 现在,主控制器中的索引视图和任何其他视图如下所示: 因此,我的视口包含一个带有标签的面板,其中有一个标签。在使用该属性渲染标签后,我确信可以通过调
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - My ASP.NET MVC Application</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@*Scripts.Render("~/bundles/modernizr")*@
@Styles.Render("~/Resources/css/app.css")
@Styles.Render("~/ExtJs/ext-theme-neptune-all-debug_01.css")
@Styles.Render("~/ExtJs/ext-theme-neptune-all-debug_02.css")
@Scripts.Render("~/ExtJs/ext-all-debug.js")
@Scripts.Render("~/App/app.js")
@RenderSection("actionscripts", required: false)
</head>
<body>
<div id="body">
<section class="">
@RenderBody()
</section>
</div>
</body>
</html>
APP = {}
BuildActionHTML = null;
Ext.application({
name: 'MyApp',
launch: function () {
APP = this;
APP.VIEWPORT = Ext.create('Ext.container.Viewport', {
layout: 'border',
cls: 'spViewport',
maxWidth: 1280,
minWidth:960,
items: [{
region: 'center',
xtype: 'panel',
title: 'Main content',
items: [{
xtype: 'label',
html: '<div id = "mainAppContainer"></div>',
listeners: {
afterrender: function (label, eOpts) {
BuildActionHTML && typeof BuildActionHTML == 'function' && BuildActionHTML();
}
}
}]
}]
});
}
});
@section actionscripts
{
<script type="text/javascript">
function BuildActionHTML() {
Ext.create('Ext.panel.Panel', {
title: 'My panel',
width: '100%',
renderTo: 'mainAppContainer',
items: [{
xtype: 'textfield',
fieldLabel: 'Text field'
}]
})
}
</script>
}