2013-12-22 52 views
2

使用ASP.net MVC 3/Razor,如何在腳本標記中包含布爾模型屬性?這裏是我有:在Javascript中使用模型屬性

<script type="text/javascript"> 
    $(document).ready(function() { 
     var claimFlagged = "@Model.Flagged"; 
     // More javascript 

我將如何設置claimFlagged值在Model.Flagged?

+1

可能重複(http://stackoverflow.com/questions/4599169 /使用剃刀在JavaScript內) – Yuriy

回答

1

這會做你想要什麼:

var claimFlagged = @(Html.Raw(Json.Encode(Model.Flagged))); 

如果只是嘗試使用這樣的:

var claimFlagged = @(Model.Flagged); 

它實際上會產生TrueFalse(注意大寫TF) ,而不是更自然的小寫版本。使用@(Html.Raw(Json.Encode(...)))方法會產生正確的小寫輸出。

我假設你想在JavaScript代碼中直接使用bools而不是字符串。如果你真的想要的輸出是一個字符串,而不是(即"true""false"),只需用引號代碼:使用JavaScript內剃刀]的

var claimFlagged = "@(Html.Raw(Json.Encode(Model.Flagged)))"; 
+0

第一個版本工作!它只是說第一個字符無效(爲什麼會這樣?) – user2206127

+0

@ user2206127聽起來像是一個語法錯誤。 –

+0

我的語法錯誤? – user2206127

0

你有沒有嘗試刪除引號:

<script type="text/javascript"> 
    $(document).ready(function() { 
     var claimFlagged = '@(Model.Flagged)'; 
     // More javascript 

剃刀不會,如果引用屬性綁定。