我在以下代码中的每个逗号(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>
您对如何编写此调用有任何其他想法,以便我不会出现语法错误吗?
答案 0 :(得分:14)
Razor Intellisense刚刚在Visual Studio中被破解。您的代码完全有效,您应该忽略这些警告,并希望Microsoft将在以后的版本中修复它。
答案 1 :(得分: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'));
往返转换令人讨厌,但确实没有时间。