JavaScript转换C#List <string>值的方法?

时间:2017-04-07 19:42:35

标签: c# angularjs

我在global.asax

中创建了这个单例
private void SetAppConfig()
{
    AppConfig.Instance.ClientId = 46;
    AppConfig.Instance.Language = "en";
    AppConfig.Instance.UserId = 7466897;
    AppConfig.Instance.UserName = "RSTEST";
    AppConfig.Instance.SessionId = "XXXX";
    AppConfig.Instance.AppIds = new List<string>(new string[] { "element1", "element2", "element3" });
    AppConfig.Instance.IsValidSession = true;
}

请注意 AppConfig.Instance.AppIds 属性,类型为List<string>

我需要将此单例对象设置为其AngularJS常量副本AppConfig,然后才能将其注入我的DataService和我的控制器

enter image description here

除了屏幕截图上的这个小东西外,一切都很完美:)

我需要将此 AppConfig.Instance.AppIds 属性的值转换为JavaScript数组格式。

必须在JS那边完成黄线。 而不是获得C#类型名称)

我忘记了,语法是什么?

谢谢!

cnorthfield,谢谢!

  

@ Html.Raw(Json.Encode(AppConfig.Instance.AppIds))

另一个有效的选择是,但你的更短))

  

@ Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(AppConfig.Instance.AppIds))

1 个答案:

答案 0 :(得分:2)

简单解决方案

使用Html.Raw辅助方法并使用Json.Encode方法对其进行JSON编码,如下所示:

@Html.Raw(Json.Encode(AppConfig.Instance.AppIds));

它是如何工作的?

  1. Json.Encode方法首先将列表转换为JSON格式的字符串。
  2. 使用Html.Raw标记,您的JSON字符串不会被HTML编码,这意味着它可以让您使用JavaScript而无需进一步处理!