升级ASP.NET项目以满足HTML5响应式设计需求

在本文中,将探讨如何升级现有的ASP.NET项目,以满足当前的HTML5响应式设计需求,并使其运行速度极快,方法是消除页面上的ViewState,从而在客户端实现轻量化,并仅通过服务(Web API)实现与后端的所有交互。

概述

本文分为两部分。在第一部分中,将创建一个使用Bootstrap设计布局的ASP.NETWeb Forms移动优先应用程序,使用Web API作为服务层,并使用JSON格式以提高浏览器的可理解性。这样,可以消除大部分代码后置逻辑,并实现显著的性能提升。

第一部分:过程

首先,在ASP.NET中创建一个新的Visual C#项目,并选择“Empty Web Application”。然后,创建一个Global.asax文件,稍后将更新这个文件。接下来,通过NuGet包管理器安装jQuery和Bootstrap。这将在项目中创建三个新文件夹:“Content”用于CSS,“fonts”和“Scripts”用于JavaScript。

为了优化Web资源,将使用捆绑技术。首先,创建一个名为“App_Start”的新文件夹,并在其中添加一个名为“BundleConfig.cs”的新类,该类包含一个静态的RegisterBundles方法。每个脚本或样式捆绑都位于从根目录指定的虚拟路径下。

要修复BundleCollection丢失的引用,需要从NuGet安装“Microsoft.AspNet.Web.Optimization”包。然后,在BundleConfig.cs文件中添加“System.Web.Optimization;”命名空间。将现有的样式和脚本标签替换为指向虚拟路径的捆绑脚本。

接下来,需要在Global.asax文件的Application_Start方法中注册捆绑。

首先,需要在项目根目录下创建一个名为“Controller”的新文件夹。默认情况下,Web Forms没有Web API功能,需要依赖NuGet包管理器来搜索并安装“MicrosoftASP.NETWeb API 2.2”包。

然后,在Controller文件夹中添加一个新的Web API控制器类,并创建一个名为“ProductController”的类。将添加一个新的动作方法“GetHelloWorld”来测试API。

public class ProductController : ApiController { [HttpGet] [ActionName("GetHelloWorld")] public string GetHelloWorld() { ArrayList al = new ArrayList { "Hello", "World", "From", "Sample", "Application" }; return JsonConvert.SerializeObject(al); } }

为了能够访问API方法,需要设置适当的路由机制。在App_Start文件夹中添加一个名为“WebApiConfig.cs”的新类,并添加以下代码:

public static void Register(HttpConfiguration config) { config.EnableCors(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{Action}/{id}", defaults: new { Controller = "Product", Action = "GetHelloWorld", id = RouteParameter.Optional } ); }

最后,在Global.asax文件的Application_Start方法中注册API路由。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485