(Я тестировал это на ванильном сайте asp.net, запущенном с сервера webdev, и здесь тоже проблема):
В моем .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>
(нет runat = "server" в теге head), то результирующий 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-адреса. Так получилось, что мне действительно нужно, чтобы тег заголовка был runat = "server", и я также хотел бы иметь возможность иметь "&" в URL-адресах внутри него, есть какой-то трюк, который я могу использовать, чтобы съесть свой торт и съесть его слишком?
Ваш Андреас