簡體   English   中英

將模型屬性作為參數傳遞給javascript函數時Razor視圖中的語法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM