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

RazorIntellisenseはVisualStudioで壊れています。コードは完全に有効であり、これらの警告を無視して、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 に答える