Javascript 在jQuery中将字符串从服务器转换为HTML:等效于HTML.Raw()?

Javascript 在jQuery中将字符串从服务器转换为HTML:等效于HTML.Raw()?,javascript,c#,jquery,asp.net,asp.net-mvc,Javascript,C#,Jquery,Asp.net,Asp.net Mvc,我有一个使用ChartList的简单图表,但这与我的问题无关。到目前为止,我已按如下方式加载数据: <script> (function () { if ($('#ChartistDebtChart').get(0)) { var options = { }; new Chartist.Line('#ChartistDebtChart',

我有一个使用ChartList的简单图表,但这与我的问题无关。到目前为止,我已按如下方式加载数据:

 <script>
        (function () {
            if ($('#ChartistDebtChart').get(0)) {
                var options = {                    };

                new Chartist.Line('#ChartistDebtChart', {
                     labels: [@Html.Raw(String.Join(", ", Model.Debt.BalanceOverTime.Select(c=> @"'" + c.Item1 + @"'").ToList()))],
                    series: [
                         [@Html.Raw(String.Join(", ", Model.Debt.BalanceOverTime.Select(c=>  ((int)c.Item2)).ToList()))],
                    ]
                }, options);
            }
        })();

        </script>
这很好用

但是,如果我从后端获取数据时也这样做。我将使用jQuery从控制器执行GET。当我们编写此数据时,“13-02-2018”、“16-03-2018”、“13-04-2018”、“13-04-2018”未被视为HTML,数据未显示在图表中

所以我的问题是:在jQuery中使用get时,如何将后端字符串作为HTML处理

我尝试了以下方法:

尝试1:在列表上使用映射:

为了方便起见,我对y值进行了硬编码,尝试了result.debteDeteriorationTimeout.mapitem=>item.Item1.join,它被视为一个字符串而不是多个字符串

尝试2:从服务器提供精确字符串:

我制作了一个字符串,它应该是'13-02-2018'、'16-03-2018'、'13-04-2018'、'13-04-2018',并像这样插入它:

  new Chartist.Line('#DebtDeteriorationGraph', {
                    labels: [result.DebtDeteriorationOverTimeLabelString],
                    series: [
                        ['70000','55000','45000','30000','25000','20000']
                    ]
                }, options);
这也被视为x轴上的一个项目

尝试3:从服务器获取字符串并尝试将其解析为HTML

所有3次尝试都被视为一个字符串,因此,与我刚从C运行Html.Raw时的效果不同


有什么想法吗-

您正在尝试将您的响应作为HTML处理,但实际上并不需要这样做。标签是字符串的javascript数组,所以需要javascript数组,其中每个项表示一个标签。最近的尝试是:

labels: [result.DebtDeteriorationOverTime.map(item => item.Item1).join(", ")]
这将生成带有一个字符串的javascript数组。相反,您需要:

labels: result.DebtDeteriorationOverTime.map(item => item.Item1)
因为DebtDeteriorationTimeout已经是数组,但不是您需要的,所以您可以使用map生成您需要的数组。无需在[]中加入任何内容或包含任何内容

请注意,还可以从api返回整个json对象,该对象使用标签和系列属性表示图表信息。然后你可以做:

new Chartist.Line('#ChartistDebtChart', result.chartData, options);

注意:您不需要标签:[@Html.RawString.Join,Model.Debt.balance加班。Selectc=>intc.Item2.ToList],-它可以是标签:@Html.RawJson.EncodeModel.Debt.balance加班。Selectc=>c.Item2,从您的描述中,我想您需要这样的标签:result.debteDeterioration加班。mapitem=>item.Item1不带[]在jQuery中使用get时,不清楚如何获取后端字符串是什么意思-您不需要字符串-您需要json。你是如何得到这些数据的?你在打ajax电话吗?你调用的方法是什么?@Evk当然。。。该死我怎么没看到?!成功了!谢谢!!你能快速回答一下吗,然后我会奖励你的答案:@StephenMuecke,谢谢你的反馈-我会记得下次再补充!
labels: [result.DebtDeteriorationOverTime.map(item => item.Item1).join(", ")]
labels: result.DebtDeteriorationOverTime.map(item => item.Item1)
new Chartist.Line('#ChartistDebtChart', result.chartData, options);