0

我有一个 GoDaddy.com 的托管帐户,运行 .NET 4.0 的 IIS 7 服务器,我正处于为我们教会开发网站的早期阶段。内容是一个免费的基于 CSS 的模板,我已将其移至带有母版页的 ASP.NET Web 应用程序中。(如果需要对内容进行评论,请记住这是一个非常早期的发展阶段......但我愿意接受任何建议。:))

出于某种原因,当我输入默认页面的完整 URL 时,页面会正确呈现。但是,如果我只输入文件夹名称而不输入页面名称,我只能从页面本身获取内容。

你自己看:

http://www.websmithsllc.com/lpacftp/Home.aspx

http://www.websmithsllc.com/lpacftp

我不认为这是我在内容页面和母版页之间的连接的问题,因为当我使用完整的 URL 时它会正确呈现。因此,我认为问题出在以下三个方面之一:

  1. 我的发布方式:一键访问 FTP 目录
  2. 项目设置:目前Home.aspx为起始页
  3. 我的主机上的设置有问题。

我真的希望问题不是#3,因为到目前为止我的经验是他们的技术支持在 Visual Studio / IIS 开发和发布领域严重缺乏。

现在,一些额外的线索。我知道 Site.Master 文件正在被渲染,至少在某种程度上是这样。正在显示的菜单是在 Site.Master.Page_Load 事件处理程序中创建的:

    protected void Page_Load(object sender, EventArgs e)
    {
        //Load sidebar content
        Page p = HttpContext.Current.CurrentHandler as Page;
        menuContent.Text = Helpers.StaticHelperMethods.GenerateMenuContent(p.Title);
    }

静态方法: public static string GenerateMenuContent(String pageTitle) { StringBuilder menu = new StringBuilder();

        if (pageTitle == "Home")
        {
            menu.Append("<a href=\"Home.html\" class=\"but but_t\"  title=\"Home Page\">Home</a>\n");
        }
        else
        {
            menu.Append("<a href=\"Home.html\" class=\"but\"  title=\"Home Page\">Home</a>\n");
        }
    More similar code...

在这种情况下,p.Title 应该 == "Home",但代码响应好像没有响应,而且我不知道如何(如果可以)实时调试以查看发生了什么。最后,如果您仔细查看第二个链接,您会注意到一些常用的 ASP.NET 广告文本,这些文本似乎来自 BodyContent asp:Content 对象中的常用“Default.aspx”文件。但是,查看属性/Web 选项卡,我可以看到启动操作是特定页面:Home.aspx。

所以 - 希望我没有在这里添加大量不必要的信息,但至少足以让有更多经验的人帮助我找出我在这里做错了什么。

提前感谢您在这方面可以为我提供的任何帮助。

4

2 回答 2

0

您需要一个默认页面。创建它,然后在 Page_Load 后面的代码中编写:

Response.Redirect("Home.aspx");

或者更改 IIS 中的默认页面。或者将您的主页更改为 Default.aspx(并重命名类和页面指令)。

在这三者中,创建重定向到 Home.aspx 的 Default.aspx 页面可能是最简单的。

于 2012-11-29T22:15:51.253 回答
0

是的,马修马丁是正确的。您的托管服务的 IIS 未配置为将“Home.aspx”作为默认页面。您需要让他们将其添加到 IIS 配置中,或者将您的主页重命名为 Default.aspx,或者创建一个重定向到您的 Home.aspx 的“虚拟”Default.aspx。

于 2012-11-29T22:33:28.443 回答