ASP.NET MVC 帮助尝试将列表转换为 Javascript 数组

ASP.NET MVC Help trying to convert a list to Javascript Array

我正在使用 ASP.NET MVC(带 Razor)和 JQuery

我的控制器中有一个字符串列表,我使用以下列表渲染传入模型的局部视图。

List<string> list = new List<string>();
list.Add("test1");
list.Add("test2");

在客户端我有:

<div id = "test", test-att = @Html.Raw(Json.Encode(Model.list)) />

在我的 javascript 文件中:

var javascriptArray = $('#test').attr('test-att');

我期待结果 ["test1", "test2"] 但我看到 "["test1", "test2"]"

关于如何解决这个问题有什么想法吗?

为此快速修复 javascript:

var javascriptArray = JSON.parse( $('#test').attr('test-att') );

这是因为您的 JSON 在字符串中(因此是引号)。使用 JSON.parse() 方法,将其转换为 javascript 中的对象,可以按您的预期使用。

我经常在Javascript做这样的事情:

var data = function() { return @Html.Raw(Json.Encode(Model)); }();

或者:

function set(value){
    return value;
}

var data = set(@Json.Encode(Model));

如果你只是这样做:

var data = @Json.Encode(Model);

它仍然可以工作,但 VS 会认为存在语法错误,所以我宁愿使用第一个两个选项之一。