我使用Notepad ++创建了一个ASP.NET应用程序。在本练习中,我不想使用Visual Studio或任何其他工具。我想了解这个过程。
我创建了自己的网站,运行良好,运行良好。
现在我想在页面后面添加一些C#代码,包括母版页和单个页面。
到目前为止,我有一个名为 Home.aspx 的文件,我想在此添加一个C#文件。
我创建了一个名为 Home.aspx.cs 的文件。以下是该文件的完整内容:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("LOAD");
Response.End();
}
但是当页面加载时,这个文件没有加载。显然我错过了一些东西,但我不确定是什么。可能是我的web.config或其他文件夹或语言参考中的引用,告诉页面这是C#,还是告诉Page_Load实际运行的东西?
另外,我想为我的母版页做同样的事情,目前这个母版页名为 masterPage.master 。
那么我会创建一个名为 masterPage.master.cs 的文件,还是一种完全不同的方式,或者甚至可以这样做?
对此问题的所有引用都解释了如何在Visual Studio中执行此操作,我不想使用它。
答案 0 :(得分:4)
你可以实际创建一个ASP.NET WebForms页面而不显式编译.cs文件。
<%@ Page Src="Home.aspx.cs" Inherits="HomePage" AutoEventWireup="True" %>
请注意,@ Page directive使用Src
属性而不是通常的CodeBehind
属性。
(而不是Src
,您可以使用CodeFile
属性并在partial
下方标记代码隐藏类。)
using System;
using System.Web.UI;
public class HomePage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("LOAD");
Response.End();
}
}
<%@ Master Src="masterPage.master.cs" Inherits="MasterPage" AutoEventWireup="True" %>
同样的事情,除了你使用@ Master directive而不是@ Page。
(同样,您可以使用Src
属性代替CodeFile
,并在partial
下方标记代码隐藏类。)
public class MasterPage : System.Web.UI.MasterPage
{
}
(我将代码隐藏类MasterPage
命名为与您的文件名匹配,但为了避免与内置的ASP.NET MasterPage
基类混淆,您可能希望选择其他名称。)
答案 1 :(得分:1)
asp.net应用程序中的.aspx,.js和.html文件不需要任何编译,但C#是编译语言,因此需要编译每个.cs文件。 您可以使用某些编译器或VS命令提示符。 看看这些链接:
https://msdn.microsoft.com/en-us/library/ms229859%28v=vs.110%29.aspx
https://msdn.microsoft.com/en-us/library/78f4aasd.aspx
https://kencenerelli.wordpress.com/2014/03/08/using-notepad-to-write-c-code/
答案 2 :(得分:1)
通过向页面添加CodeFile链接,如下所示:
<%@ Page Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" CodeFile="Home.aspx.cs" Inherits="Home" Title="Content Page"%>
并确保存在inhereits标记,无需编译代码。
所以这是正确答案
答案 3 :(得分:0)