[英]Syntax error in Razor view when passing model properties as parameters to javascript function
我在以下代碼中的每個逗號( ,
)和最后一個括號( )
上得到一個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>
您對如何編寫此調用有任何其他想法,以便我不會出現語法錯誤嗎?
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'));
往返轉換是煩人的,但實際上沒有時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.