在 ASP.NET 通用處理程序中動態生成 HTML 並輸出 <a> 標籤,Chrome 和 Firefox 正常顯示,但在 IE 中完全不見蹤影。經排查,生成的 HTML 片段如下:
<a href=/path/to/page?id=123>鏈接文字</a>
IE 對 HTML 屬性值的引號要求嚴格:href 屬性值缺少雙引號包裹,導致 IE 解析失敗,認為標籤不完整而忽略渲染。現代瀏覽器容錯性較強,自動補全引號故正常顯示。
string link = string.Format("<a href=\"{0}\">{1}</a>", url, text);
string link = string.Format("<a href='{0}'>{1}</a>", url, text);
string safeUrl = Server.UrlEncode(url);
string link = string.Format("<a href='{0}'>{1}</a>", safeUrl, text);
StringBuilder 或模板引擎(如 Razor)替代字符串拼接,減少語法錯誤。