我需要使用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());
}
我需要访问模型中的第I项。
Razor不在客户端执行,因此上面的代码示例无效。
最简单的解决方案是使用序列化将整个数组存储为客户端Javascript变量。我使用Json。
我建议你研究一下哪些是在服务器端执行的,哪些是在客户端执行的。这将有助于你在编写视图时的理解。
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());
}