ASP.NET C#Web应用程序(窗体)的移动版和桌面版之间共享代码
本文关键字:桌面 之间 代码 共享 移动 C#Web NET 应用程序 窗体 ASP | 更新日期: 2023-09-27 18:16:36
我有一个现有的asp.net C#web应用程序,我正在通过创建一个子文件夹"mobile"并复制我将在移动区域提供的文件夹/文件来开始开发移动版本。我有东西工作得很好,不同的风格和移动网站地图。
例如,有许多页面将提供相同的业务流程,但在样式或主页面之上和之外,两者之间的表示层可能会有一些细微的变化。我想在手机副本和桌面副本之间分享Login.aspx页面的代码隐藏逻辑。
我是一个使用asp.net的新手,所以一个简单的例子会很好。我曾尝试在另一个文件夹中创建一个共享类,但未能正确引用它并在编译时无错误。
想法?
用鼠标右键单击项目,然后单击Add ASP.NET Folder
,添加"App_Code"文件夹并将类放置在那里。之后,您应该能够在整个项目中访问该类
将业务逻辑至少分离到App_Code文件夹中。但最好将其转移到自己的类库项目中。然后将您的网站/web应用程序项目中的引用添加到类库项目中。方法如下:在解决方案资源管理器中右键单击您的解决方案,转到"添加">"新建项目"。从这里向解决方案中添加类库项目。然后右键单击您的站点项目,单击"添加引用",确保您处于"项目"选项卡上,然后选择您以前创建的类库。您的业务逻辑在类库项目中,站点特定逻辑在网站项目中。您需要将Using语句添加到类中,或者使用完整的命名空间语法来访问类库中的类。
在特定于站点的逻辑中,如果页面共享相同的页面特定逻辑,则可以让各个页面从公共基类继承。
public partial class _Default : System.Web.UI.Page
{
//This is all the code behind logic for Default.aspx. This code is in Default.aspx.cs. Notice how it is inheriting from System.Web.UI.Page directly.
}
更改为。。。
public class BasePage : System.Web.UI.Page
{
//code common to multiple pages goes here. This file (BasePage.cs) goes in your App_Code folder.
}
而这个。。。
public class _Default : BasePage
{
//Now your default page inherits from BasePage class, and therefore it indirectly inherits from System.Web.UI.Page.
}
将.cs文件放入App_Code之外的任何文件夹可能都不是一个好主意。代码隐藏文件(.aspx.cs和.aspx.vb(除外。请参阅:http://www.codeproject.com/Articles/31557/A-Beginner-s-Guide-to-ASP-NET-Application-Folders以获取App_Code和其他特殊文件夹的说明。