将模型属性作为参数传递给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-并不完美。所以忽略这些错误。