1

我有一个ModelwithLevelInfo属性:

public IEnumerable<Tuple<string, string, string>> LevelInfo { get; set; }

在视图中我有一个 JS 函数:

function fillPath(level, color) {
        $('[level=' + level).attr({ 'fill': color });
    }

现在我想遍历LevelInfo 并调用fillPath函数:

$(document).ready(function() {

        @foreach (var info in Model.LevelInfo)
        {
            // How can I call JS function from here?
            // i.e,  fillPath(info.Item1, info.Item2)
        }
    });

谢谢。

4

1 回答 1

8

请记住,@foreach是在服务器端执行的,并为 和 之间的内容发出{HTML }

只需在括号之间写 JavaScript。

$(document).ready(function() {

    @foreach (var info in Model.LevelInfo)
    {
        fillPath(info.Item1, info.Item2) // Assumes this is a function defined in JavaScript elsewhere
    }
});

Razor 有时对识别从服务器端代码到客户端代码的转换有点挑剔。您可能需要包装 JavaScript 代码<text>以帮助 Razor。

于 2012-06-07T06:36:57.617 回答