C# asp:超链接无法在服务器上呈现正确的HTML

C# asp:超链接无法在服务器上呈现正确的HTML,c#,webforms,C#,Webforms,我正在从事一个ASP.NET WebForms on.NET 2.0的项目,遇到了一个似乎找不到原因的问题。我的aspx文件中有以下代码: <table> <tr> <td> <asp:HyperLink ID="supportLink" runat="server">Customer Support Docket</asp:HyperLink

我正在从事一个ASP.NET WebForms on.NET 2.0的项目,遇到了一个似乎找不到原因的问题。我的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>
在这一点上,我不确定我能做什么。我的计划是在接下来的几周内用MVC4重新编写这个网站,但鉴于这是一个内部网站,没有产生资金,它在我的优先级列表中处于较低的位置,在一段时间内不会得到更多的关注,这意味着我需要解决这个问题

服务器环境是Windows server 2003上的IIS 6,HTML在IE9和Chrome 24.0.1312.57中都以这种方式呈现。我已经清除了两个浏览器中的缓存,但都没有用,我知道页面在发布后会得到更新,因为我添加的其他功能在生产中实际运行

编辑

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

无查询字符串的本地渲染


不带查询字符串的生产HTML


客户支持摘要
编辑权利


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

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

只要确保。。。你确定你部署的重建的.dll正确吗?@RandomWebGuy我直接从Visual Studio 2008发布。当同一文件中的更改很明显时(新的javascript函数和新的行为都在其中),dll被推到了那里?标记更改?两者都有?只是确定。。。你确定你部署的重建的.dll正确吗?@RandomWebGuy我直接从Visual Studio 2008发布。当同一文件中的更改很明显时(新的javascript函数和新的行为都在其中),dll被推到了那里?标记更改?两者都有?customerid来自查询字符串,在我的代码隐藏中可以看到该字符串。我可以将带有查询字符串的页面url从localhost(它工作的地方)复制到prod站点,但它仍然不工作。查询字符串在我的测试中肯定存在。不管查询字符串是否包含值。例如,supportLink的导航URL就是ViewCustomer.aspx?customerid=如果您将代码更改为以下内容,它是否工作(我指的是在服务器上)?supportLink.NavigateUrl=“./sometest.htm”@雷扎拉斯:好吧,这很奇怪。我将supportLink更改为一个静态url,然后发布并显示出来。然后我把它改回来发布,它开始正常工作。不知道为什么。我猜它一定没有发布隐藏的代码。这很奇怪,因为在代码背后还有其他代码是新的,但却不起作用。感谢您的帮助。customerid来自查询字符串,该字符串显示在我的代码后面。我可以将带有查询字符串的页面url从localhost(它工作的地方)复制到prod站点,但它仍然不工作。查询字符串在我的测试中肯定存在。不管查询字符串是否包含值。例如,supportLink的导航URL就是ViewCustomer.aspx?customerid=如果您将代码更改为以下内容,它是否工作(我指的是在服务器上)?supportLink.NavigateUrl=“./sometest.htm”@雷扎拉斯:好吧,这很奇怪。我将supportLink更改为一个静态url,然后发布并显示出来。然后我把它改回来发布,它开始正常工作。不知道为什么。我猜它一定没有发布隐藏的代码。这很奇怪,因为在代码背后还有其他代码是新的,但却不起作用。谢谢你的帮助。
<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>
 <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>
 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"]);
    }
<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>
<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>