(我已经使用从 webdev 服务器运行的 vanilla asp.net 站点对此进行了测试,这也是一个问题):
我的 .master 文件中有以下标记
<!DOCTYPE html>
<html>
<head runat="server">
<link href="/Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="rss" href="/Pages/Static/Feed.aspx?type=rss&lang=en" />
</head>
呈现的 html 如下所示:
<!DOCTYPE html>
<html>
<head>
<link href="/Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="asdsad" href="/Pages/Static/Feed.aspx?type=rss&lang=en" />
</head>
(rss 链接“&”已编码为“&”)
但是,如果我将标记更改为
<!DOCTYPE html>
<html>
<head>
<link href="/Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="rss" href="/Pages/Static/Feed.aspx?type=rss&lang=en" />
</head>
(在 head 标签上没有 runat="server")然后生成的 html 按预期出现:
<!DOCTYPE html>
<html>
<head runat="server">
<link href="/Styles/Site.css" rel="stylesheet" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="rss" href="/Pages/Static/Feed.aspx?type=rss&lang=en" />
</head>
显然,Asp.Net 对 url 进行了编码。碰巧的是,我确实需要将 head 标签设置为 runat="server",并且我还希望能够在其中的链接 URL 中包含“&”,我可以使用一些技巧来吃蛋糕并吃掉它也?
你的 安德烈亚斯