2017-03-14 38 views
0

我從剃鬚刀代碼傳遞3個參數給JavaScript函數,前兩個正確傳遞,但第三個傳遞從不傳遞 - 前兩個是int /數字,但最後一個是串在剃鬚刀中傳遞字符串到JavaScript函數

這工作得很好

if (geResult.ResultValue != null) { 
    var val = "A!"; 
    <script>{ getPosition(@geResult.assessmentId, @index, "A!"); }</script> 
} 

這亙古不變的工作

if (geResult.ResultValue != null) { 
    var val = "A!"; 
    <script>{ getPosition(@geResult.assessmentId, @index, @val); }</script> 
} 

回答

2

試試這個 - 只需添加單引號

if (geResult.ResultValue != null) { 
<script>{ getPosition('@geResult.assessmentId', '@index', '@val'); }</script> 
} 

希望工程..

+0

太棒了!所以它是單引號! – Samra

+0

它工作嗎?那麼你能接受我的答案嗎? –

1

如果您想更穩健的實現,你可以生成從剃鬚刀,而不是通過單一參數的JSON對象。如果你傳遞布爾值和/或字符串,這特別方便。自從Json.Encode處理這個問題以後,不需要引用或解釋你的剃刀變量。

爲了生成對象嘗試:

var parameters = JSON.parse('@Html.Raw(Json.Encode(new { assessmentId = geResult.assessmentId, index = index, value = val }))'); 

Json.Encode從剃刀轉換一個AnonymousType到JSON。 @ Html.Raw防止標記的編碼。

結果是呈現爲客戶端使用的字符串的json對象。當客戶端使用JSON.parse()解析文本或者如果您使用jQuery使用jQuery.parseJSON(),則結果是包含您的剃鬚刀參數的對象。