1

我正在开发一个在 .NET 2.0 上的 ASP.NET WebForms 中的项目,并且遇到了一个我似乎找不到原因的问题。我的 aspx 文件中有以下代码:

 <table>
            <tr>
                <td>

                    <asp:HyperLink ID="supportLink" runat="server">Customer Support Docket</asp:HyperLink>
                </td>
            </tr>

            <tr>
                <td>
                    <asp:HyperLink ID="entitlementsLink" runat="server">Edit Entitlements</asp:HyperLink>
                </td>
            </tr>
        </table>

当我在调试模式下本地运行时,它工作得很好。链接出现并且 HTML 被正确呈现,如下所示:

本地呈现的 HTML

<table>
    <tr>
        <td>

            <a id="ctl00_ContentMain_supportLink" href="ViewCustomer.aspx?customerid=659">Customer Support Docket</a>
        </td>
    </tr>

    <tr>
        <td>
            <a id="ctl00_ContentMain_entitlementsLink" href="EditEntitlements.aspx?customerid=659">Edit Entitlements</a>
        </td>
    </tr>
</table>

但是,当我在生产服务器上运行它时,会生成以下 HTML:

服务器呈现的 HTML

 <table>
        <tr>
            <td>

                <a id="ctl00_ContentMain_supportLink">Customer Support Docket</a>
            </td>
        </tr>

        <tr>
            <td>
                <a id="ctl00_ContentMain_entitlementsLink">Edit Entitlements</a>
            </td>
        </tr>
    </table>

如您所见,两者都缺少 href。在我后面的代码中,我添加了 URL,因为我很难让它们在 aspx 文件中正确呈现:

代码隐藏文件

 protected void Page_Load(object sender, EventArgs e)
    {
        supportLink.NavigateUrl = string.Format("ViewCustomer.aspx?customerid={0}",
                                                Request.QueryString["customerid"]);
        entitlementsLink.NavigateUrl = string.Format("EditEntitlements.aspx?customerid={0}",
                                                     Request.QueryString["customerid"]);
    }

在这一点上,我不确定我能做什么。我的计划是在接下来的几周内用 MVC4 重写这个站点,但由于这是一个内部站点并且不会产生资金,所以它在我的优先级列表中的位置很低,并且暂时不会得到更多关注,这意味着我需要来解决这个问题。

服务器环境是 Windows Server 2003 上的 IIS 6,HTML 在 IE9 和 Chrome 24.0.1312.57 中都以这种方式呈现。我已经清除了两个浏览器中的缓存但无济于事,并且我知道该页面在发布后会更新,因为我添加的具有相同更改的其他功能实际上正在生产中工作。

编辑

Rezalas想知道我从哪里得到客户 ID。它来自查询字符串。为了显示一个空白的查询字符串不会导致这种情况,这里是没有查询字符串的本地和生产 HTML:

没有查询字符串的本地渲染

<table>
    <tr>
        <td>

            <a id="ctl00_ContentMain_supportLink" href="ViewCustomer.aspx?customerid=">Customer Support Docket</a>
        </td>
    </tr>

    <tr>
        <td>
            <a id="ctl00_ContentMain_entitlementsLink" href="EditEntitlements.aspx?customerid=">Edit Entitlements</a>
        </td>
    </tr>
</table>

没有查询字符串的生产 HTML

<table>
    <tr>
        <td>

            <a id="ctl00_ContentMain_supportLink">Customer Support Docket</a>
        </td>
    </tr>

    <tr>
        <td>
            <a id="ctl00_ContentMain_entitlementsLink">Edit Entitlements</a>
        </td>
    </tr>
</table>
4

1 回答 1

1

为了澄清,customerid值来自哪里?您确定在服务器上运行时的值被正确提取吗?我这样说是因为它看起来好像没有提供 ID,因此没有构建字符串并且导航 url 被排除在外,因为它没有值。

于 2013-02-15T21:45:12.820 回答