Asp.net aspx是如何编译的?
如何编译.aspx和aspx.cs文件?它是两个程序集还是两个文件合并为一个并将创建为一个程序集?它是否遵循任何层次结构/继承。正在将aspx创建为相应的C代码文件(只有这样我们才能正确创建程序集?如果我错了,请更正!),作为windows form designer.cs文件中的一个文件?这取决于项目类型。使用ASP.Net,您可以创建两种类型的项目: 如何编译.aspx和aspx.cs文件? 使用Asp.net aspx是如何编译的?,asp.net,Asp.net,如何编译.aspx和aspx.cs文件?它是两个程序集还是两个文件合并为一个并将创建为一个程序集?它是否遵循任何层次结构/继承。正在将aspx创建为相应的C代码文件(只有这样我们才能正确创建程序集?如果我错了,请更正!),作为windows form designer.cs文件中的一个文件?这取决于项目类型。使用ASP.Net,您可以创建两种类型的项目: 如何编译.aspx和aspx.cs文件? 使用Web应用程序project,您可以将aspx文件、用户控件和其他在此项目中找到的代码编译到单个
Web应用程序
project,您可以将aspx
文件、用户控件和其他在此项目中找到的代码编译到单个dll中,并将其部署到服务器上
使用websiteproject
只需在服务器上复制源代码,ASP.Net
将为您处理编译。网站项目将自定义类的源代码保存在App_code文件夹中(您必须在该链接上阅读更多关于这些类的信息)
是两个程序集,还是两个文件合并为一个,并将创建为一个程序集?
在所有这些情况下,在aspx、ascx
文件中找到的代码都不是由您编译的(使用Visual Studio等)<代码>ASP.Net解析这些文件并创建存储在其临时文件夹中的dll。“aspx,ascx”DLL(可以不止一个)与您使用Visual Studio创建的DLL不同(我相信它与从App_Code文件夹创建的DLL不同,因为该代码无法访问页面中的代码)
是否遵循任何层次结构/继承?
对。解析和编译页面时,生成的类将继承名为at属性的类,该类位于@page指令
<%@ Page Language="C#" CodeBehind="Default.aspx.cs"
Inherits="WebApplication1._Default" %>
鉴于从标记生成的类继承了我们编写的类(通常是代码隐藏中的类,aspx.cs
文件),我们可以自由使用其成员或方法
以下方法是_Default类的方法:
protected string ToUpper(string source)
{
return source.ToUpper();
}
然后在标记中,我们可以调用:
<form id="form1" runat="server">
<%= ToUpper("Microsoft") %>
</form>
并更改继承
值:
<%@ Page Language="C#" Inherits="WebApplication1.PreviewPage" %>
正在将aspx创建为相应的C#代码文件
指令@Page
中的Language
属性指示编译aspx/ascx
文件所使用的语言。因此,您可以在aspx文件中实际使用VB.Net,并使用C#编译器编译网站
这是另一种编译,与VisualStudio不同,它使用不同的选项。这就是为什么在web.config中有一些选项可以将
compilementmode
设置为Debug/Release
,还可以指示编译器使用其他可用选项的原因。我不太理解这个问题,但这可能会有所帮助。当解析和编译页面时,生成的类将继承一个名称-->生成的类意味着aspx/ascx类?我想说“在继承时命名”。对不起,正如你所看到的,英语不是我的母语,我还有很多东西要学拼写/写作。我加了一个例子
<% SomeValue = 1; %>
<%= SomeValue %>
<head runat="server">
<script runat="server" language="C#">
private int someCounter = 10;
</script>
</head>
<body>
<% for (var i = 0; i < someCounter; i++)
{ %>
<p>
Paragraph number:<%= i %>
</p>
<% } %>
</body>
</html>
public PreviewPage: System.Web.Page
{
public PreviewPage()
{
this.Load += (o, e) => {
// code here to see if the authenticated user has the right to see the page
// if not, redirect the user to another page
}
}
}
<%@ Page Language="C#" Inherits="WebApplication1.PreviewPage" %>