在index.html页面启动时运行ASP页面?

时间:2017-11-05 04:45:37

标签: c# asp.net .net

  

当用户加载网站的主页(将是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设置...所以也许我在这里错过了一些东西。谢谢!

1 个答案:

答案 0 :(得分:0)

这些要求没有任何意义,反映了对ASP,Ajax和HTML如何工作的误解。我想你需要阅读并了解更多关于它们的信息。

无论如何,要回答你的问题。 HTML页面通常不会被ISS传递给ASP引擎,所以你输入的内容并不重要(例如runat="server"),因为ASP引擎甚至都不会意识到它。 IIS将简单地将未处理的页面发送到不理解标记的浏览器,并忽略它。

如果您希望IIS将HTML页面发送到ASP引擎,您需要告诉它这样做。步骤因IIS版本而异。对于IIS 6:

  • 打开您网站的属性
  • 选择主目录标签
  • 点击配置按钮
  • 编辑.aspx条目并复制路径
  • 为.htm创建一个新扩展名(如果需要,还可以创建.html)并粘贴上一步中的路径。

对于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>