我正在开发一个在 .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>