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 会认为存在语法错误,所以我宁愿使用第一个两个选项之一。
我正在使用 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 会认为存在语法错误,所以我宁愿使用第一个两个选项之一。