我试图为网页中的地图生成一些动态标记。目前,我有这个代码从javascript函数返回一个字符串:
public ActionResult Index()
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en-US");
var franquias = _context.Franquias.ToList();
string val = "";
int count = 0;
foreach (Franquia f in franquias)
{
count++;
val = val +
@" var marker" + count + @" = new google.maps.Marker({position: new google.maps.LatLng(" + f.Latitude + ", " + f.Longitude + ")," +
@"'map': map," +
@"'title': 'Click me'" +
@"});";
}
MapsViewModel viewModel = new MapsViewModel();
viewModel.Codigo = val;
return View(viewModel);
}
问题是,当返回字符串时,我出现了这个'
代码,这会破坏我的JavaScript代码:
var marker1 = new google.maps.Marker({'position': new google.maps.LatLng(-lat, -lng),'map': map,'title': 'Click me'});
答案 0 :(得分:5)
当将原始字符串写入页面时,Razor会自动对它们进行HTML编码。为防止这种情况,您需要使用Html.Raw
。例如,而不是:
@Model.Codigo
这样做:
@Html.Raw(Model.Codigo)