12

我在以下代码中的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>

您对如何编写此调用有任何其他想法,以免我收到语法错误吗?

4

2 回答 2

14

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

于 2012-09-24T05:30:18.550 回答
1

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

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

或者,对于您的示例:

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

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

于 2014-05-21T16:31:02.620 回答