为什么我的字符串会返回"'"

时间:2017-03-16 18:20:33

标签: javascript c# string

我试图为网页中的地图生成一些动态标记。目前,我有这个代码从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'});

1 个答案:

答案 0 :(得分:5)

当将原始字符串写入页面时,Razor会自动对它们进行HTML编码。为防止这种情况,您需要使用Html.Raw。例如,而不是:

@Model.Codigo

这样做:

@Html.Raw(Model.Codigo)