我正在研究.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想知道我从哪里获得了customerid。它来自查询字符串。要显示空白查询字符串不会导致此处是本地和生产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>
答案 0 :(得分:1)
为了澄清,customerid值来自何处?您确定正确拉动服务器上运行的值吗?我这样说是因为它看起来好像没有提供ID,因此没有构建字符串,导航网址被排除,因为它没有值。