如何在cshtml文件中使用JavaScript变量从模型中请求某些东西? (ASP.NET)

时间:2014-07-01 05:49:51

标签: c# javascript asp.net

我需要使用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个项目。

1 个答案:

答案 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());
}