【问题标题】:Syntax error in Razor view when passing model properties as parameters to javascript function将模型属性作为参数传递给 javascript 函数时,Razor 视图中的语法错误
【发布时间】:2012-09-23 17:23:48
【问题描述】:

在以下代码中,我在每个逗号 (,) 和最后一个括号 ()) 上得到一个 Syntax error

<script type="text/javascript">
    Filters.priceRangeInit(@Model.Min, @Model.Max, @Model.From, @Model.To);
</script>

javascript 函数在另一个文件中,如下所示:

Filters = {
    priceRangeInit: function (min, max, from, to) {
        $('#price-range-slider').slider({
            min: min,
            max: max,
            step: 50,
            values: [from, to],
            slide: function (event, ui) {
                $('#left-price-range-amount').val(ui.values[0]);
                $('#right-price-range-amount').val(ui.values[1]);
            }
        });
    }
};

模型如下所示:

public class PriceRangeFilterModel
{
    public int Min { get; set; }
    public int Max { get; set; }
    public int From { get; set; }
    public int To { get; set; }
}

我使用 Visual Studio 2012、ASP.NET MVC 3 和 Razor,在浏览器中一切正常,但我想摆脱在 IDE 中遇到的 4 个语法错误。

如果我以strings 的形式传递参数,我就不会再出现错误,但是我必须将每个参数都转换回int 以使滑块工作:

<script type="text/javascript">
    Filters.priceRangeInit('@Model.Min', '@Model.Max', '@Model.From', '@Model.To');
</script>

您对如何编写此调用有任何其他想法,以免出现语法错误?

【问题讨论】:

  • 您的代码看起来不错,因为它可以在浏览器中运行,所以您不必关心 VS 中的语法错误。视觉工作室 intelisense - 尤其是在 razor 中 - 并不完美。所以请忽略错误。

标签: javascript asp.net-mvc razor visual-studio-2012


【解决方案1】:

Razor Intellisense 刚刚在 Visual Studio 中损坏。您的代码完全有效,您应该忽略这些警告,并希望 Microsoft 在未来的版本中修复它。

【讨论】:

    【解决方案2】:

    要抑制语法错误,请将字符串值括在引号中或将数字括在 parseInt() 中,如下所示:

    var myInt = parseInt('@Model.MyInt');
    var myStr = '@Model.MyString';
    

    或者,例如:

    Filters.priceRangeInit(parseInt('@Model.Min'), parseInt('@Model.Max'), parseInt('@Model.From'), parseInt('@Model.To'));
    

    往返转换很烦人,但确实不需要时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      相关资源
      最近更新 更多