我需要使用JS变量从存储在模型中的数组中请求特定项。怎么做?
以下是代码示例:
function CreateCategoryList()
{
var limit = @(Model.CategoriesCount.ToString());
for (i=0; i<limit; i++)
{
var category = '<div class="CategoryItem">' + '@(Model.CategoryList[i].Name.ToString())' + '</div>';
$("#CategoriesPopup").append(category);
}
alert($(".CategoryItem:first").text());
}
我需要使用for循环中的i变量访问Model.CategoryList中的第i个项目。
答案 0 :(得分:0)
Razor未在客户端执行,因此上面的代码示例无效。
最简单的解决方案是使用序列化将整个数组存储为客户端Javascript变量。我在下面的例子中使用了Json.NET。
我建议你探索在服务器上执行的内容,以及在客户端执行的内容。在编写视图时,它将有助于您理解。
function CreateCategoryList()
{
var limit = @(Model.CategoriesCount.ToString());
var clientSideArray = JSON.parse('@(JsonConvert.SerializeObject(Model.CategoryList))');
for (i=0; i<limit; i++)
{
var category = '<div class="CategoryItem">' + clientSideArray[i] + '</div>';
$("#CategoriesPopup").append(category);
}
alert($(".CategoryItem:first").text());
}