2013-11-14 36 views
0

我正試圖在剃刀(MVC4)中編寫以下JavaScript代碼。使用剃刀和Resharper編寫Javascript

(腳本標籤有)

var isPaid = true; 
在我使用模型來獲取價值的觀點

var isPaid = @Model.Paid; 

<text> 
    var proceed = @Model.Paid; 
</text> 

var proceed = @Html.Raw(Model.Paid + ";") 

大部分時間ReSharper的抱怨

+0

@OP - 在你看來,敷在'。但是,你能解釋一下嗎?你想寫整行'var isPaid = true;'你想在運行時設置'var isPaid'的值嗎?你也說過「使用模型/我試過:」,你是說View嗎? –

+0

[razor/javascript和尾隨分號]的可能重複(http://stackoverflow.com/questions/12111729/razor-javascript-and-trailing-semicolon) – StriplingWarrior

+0

resharper抱怨什麼?也許這是因爲你的JavaScript代碼中有HTML。 – qwertynl

回答

1

你可以試試這個方法:

<script type="text/javascript"> 
    var isPaid = false; // This is JavaScript. 

    // The if statement is C#, hence the @. 
    @if (Model.Paid) 
    { 
     @:isPaid = true; // Set the JS variable to true. 
    } 

    // Below is JavaScript code again. 
    alert(isPaid); 
</script> 

@:塊之後的文本將被解釋爲JavaScript。這是一個有點爲布爾麻煩的,一個string屬性的例子是輕鬆了不少:

<script type="text/javascript"> 
    var userName = '@Model.UserName'; 
</script> 
1

你可以用」 t將HTML代碼內部的JavaScript結合起來,並且需要在值的周圍加上尖括號,以便將其視爲字符串。

的問題似乎是這樣的多..:

var isPaid = @Model.Paid; 

<text> 
    var proceed = @Model.Paid; 
</text> 

擬議的解決辦法是:

普通JavaScript代碼應該駐留在script標籤內,例如:

<script type="text/javascript"> 
var isPaid = '<%: @Model.Paid %>'; 
</script> 
+0

問題在於Razor(MVC 4)而不是asp.net網頁。 –