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

Bar*_*ago 0 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);
}
Run Code Online (Sandbox Code Playgroud)

问题是,当返回字符串时,我出现了这个'代码,这会破坏我的JavaScript代码:

var marker1 = new google.maps.Marker({'position': new google.maps.LatLng(-lat, -lng),'map': map,'title': 'Click me'});
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 5

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

@Model.Codigo
Run Code Online (Sandbox Code Playgroud)

做这个:

@Html.Raw(Model.Codigo)
Run Code Online (Sandbox Code Playgroud)