У меня есть JavaScript, который должен генерироваться во время выполнения. Текст сценария генерируется в классе контроллера:
private string mapString
{
get
{
Locations loc = new Locations();
string appPath = Request.ApplicationPath;
loc.ReadXml(Path.Combine(Request.MapPath(appPath) + "\\App_Data", "Locations.xml"));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < loc.Specfications.Count; i++)
{
sb.Append("var myLatLng" + i.ToString() + "= new google.maps.LatLng(" + loc.Specfications[i].Y.ToString() + "," +
loc.Specfications[i].X.ToString() + ");");
sb.Append(" var beachMarker" + i.ToString() + " = new google.maps.Marker({position: myLatLng" + i.ToString() + ",map: map,icon: image,title:'" + loc.Specfications[i].Title + "'});");
....
...
...
ViewData["MapString"] = mapString;
Когда я использую его в теге script:
<script type="text/javascript">
function initialize() {
@Server.HtmlDecode(ViewData["MapString"].ToString())
}
</script>
Он не возвращает истинный текст и повторяет что-то вроде этого:
contentString0 = '<ширина таблицы = "100%" style = "семейство шрифтов: tahoma; выравнивание текста: справа; шрифт </strong>
** обновление: сайт не отображал мой вопрос правильно, я хочу показать "'<", но он показывает "' <" </p>
но он должен вернуть:
contentString0 = '
Вы видите, что он конвертирует "'<" в "' <".
Но когда я использую: @ Server.HtmlDecode (ViewData ["MapString"]. ToString ()) из тега сценария, все в порядке. </p>