我有Model
LevelInfo
属性:
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)
}
});
感谢。
答案 0 :(得分: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有时对于识别从服务器端到客户端代码的转换有点挑剔。您可能需要在<text>
中包装JavaScript代码以帮助Razor。