当用户加载网站的主页(将是index.html页面)时,我也希望我的index.aspx也能加载。因此,如果我访问www.mywebsite.com/index.html,它应该在index.aspx.cs页面(C#语言)上运行Page_Load方法。
我过去做过这个,我不记得我是怎么做到的。最后我想在我的index.html页面上执行ajax调用...所以我需要检查我在index.aspx.cs页面的Page_Load方法中进行的api调用。
我认为我必须包含runat="server"
才能使用此功能。目前,我只是通过调试器(启动Chrome)在本地运行页面来测试所有内容。它不会像这样工作吗?
ASP页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="WebApplication1.index" ValidateRequest="false" runat="server" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>wtf</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
ASP类代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
public partial class index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("ASP page loaded.");
}
}
}
index.html页面:
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<meta charset="utf-8" />
</head>
<body>
index.html page
</body>
</html>
我还很擅长用ASP设置...所以也许我在这里错过了一些东西。谢谢!
答案 0 :(得分:0)
这些要求没有任何意义,反映了对ASP,Ajax和HTML如何工作的误解。我想你需要阅读并了解更多关于它们的信息。
无论如何,要回答你的问题。 HTML页面通常不会被ISS传递给ASP引擎,所以你输入的内容并不重要(例如runat="server"
),因为ASP引擎甚至都不会意识到它。 IIS将简单地将未处理的页面发送到不理解标记的浏览器,并忽略它。
如果您希望IIS将HTML页面发送到ASP引擎,您需要告诉它这样做。步骤因IIS版本而异。对于IIS 6:
对于IIS 7,如果您在经典模式中运行应用程序池:
Path=.aspx
.aspx
至.htm
.html
如果您使用集成模式,那么您不需要执行上述任何操作,只需继续执行以下步骤。
现在IIS将HTML页面传递给ASP引擎,您需要告诉ASP引擎如何处理它们。在您的web.config文件中,向httpHandlers
部分添加一个新条目,如下所示:
<httpHandlers>
<add path="*.htm" verb="*" type="System.Web.UI.PageHandlerFactory" />
<add path="*.html" verb="*" type="System.Web.UI.PageHandlerFactory" />
</httpHandlers>