c# - Javascript block 内的 ASP MVC Razor foreach

标签 c# asp.net-mvc-3 razor

我有一个分部 View ,它在我提交 Ajax 表单后返回一个 Javascript 函数调用。它获取地址列表并调用 Javascript 函数以在 Google map 上进行地理编码和放置标记。当我编译以下代码时,在 ForEach 行的 var 周围出现“条件编译已关闭”错误。

@model IEnumerable<TestStore.Models.Address>

@if (Model.Count() > 0)
{
<script type="text/javascript">
    deleteMarkers();

    @foreach(var item in Model)
    {
        codeAddress('@item.GetAddress');
    }  
</script>
}

我摆弄了代码,下面的代码没有编译错误:

@if (Model.Count() > 0)
{
<script type="text/javascript">
    deleteMarkers();
</script>

    foreach (var item in Model)
    {
        <script type="text/javascript">
            codeAddress('@item.GetAddress');
        </script>
    }
}

为了便于讨论,如果我有更长的逻辑在循环内进行大量 Javascript 函数调用,我更愿意将所有内容都包含在 1 个脚本 block 中。我搜索了 Stack Overflow,似乎 Razor 语法可以放在脚本 block 中,但我不知道在我的示例中是什么样子。

最佳答案

或者您可以使用 @:语法而不是 <text>循环中的元素。 Here是一个教程。

@:codeAddress(@item.GetAddress);

关于c# - Javascript block 内的 ASP MVC Razor foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12686014/

相关文章:

javascript - 如何在 razor 中创建一个 javascript 字符串

c# - RedirectPermanent 的正确用法是什么?

intellisense - ASP.NET MVC 3 - ViewBag 属性不提供 IntelliSense

c# - 将结构数组 ByRef 从 C# 传递到 C++ 并将其取回

asp.net-mvc-3 - MVC3 以弹出窗口形式查看

asp.net-mvc-3 - 如何更改获取数据的 WebGrid 操作 (.NET MVC3)

asp.net - 如何使用 Html.ActionLink 覆盖路由表默认值?

c# - 如何在 ASP.net razor 网页中使用 "Using"语句?

c# - 一次触发多次的ajax调用

c# - 使用 Linq-to-SQL 添加多条记录