将模型属性作为参数传递给javascript函数时,Razor视图中出现语法错误

将模型属性作为参数传递给javascript函数时,Razor视图中出现语法错误,javascript,asp.net-mvc,razor,visual-studio-2012,Javascript,Asp.net Mvc,Razor,Visual Studio 2012,我在以下代码中的每个逗号(,)和最后一个括号())上都出现了语法错误: <script type="text/javascript"> Filters.priceRangeInit(@Model.Min, @Model.Max, @Model.From, @Model.To); </script> 模型如下所示: Filters = { priceRangeInit: function (min, max, from, to) { $('

我在以下代码中的每个逗号(
)和最后一个括号(
)上都出现了
语法错误

<script type="text/javascript">
    Filters.priceRangeInit(@Model.Min, @Model.Max, @Model.From, @Model.To);
</script>
模型如下所示:

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>

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

关于如何编写此调用以避免语法错误,您还有其他想法吗?

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

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

var myInt = parseInt('@Model.MyInt');
var myStr = '@Model.MyString';
或者,举个例子:

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

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

您的代码看起来很好,因为它在浏览器中工作,所以您不应该关心VS中的语法错误。visual studio IntelliSense-尤其是razor-并不完美。所以忽略这些错误。