2013-03-13 136 views
1

所以我一直在尋找相關的問題,我無法弄清楚爲什麼我的腳本標籤格式不正確。在Javascript中格式化剃鬚刀ViewData

<script language="javascript" type="text/javascript"> 
    var showME = false; 
    var showSuffix = ""; 

    @if (ViewData["showME"] != null && ViewData["showSuffix"] != null) 
    { 
     <text> 
     showME = @(Convert.ToBoolean(ViewData["showME"]) ? "true" : "false"); 
     showSuffix = '@Html.Raw(Json.Encode(ViewData["showSuffix "]))'; 
     </text> 
    } 
</script> 

編輯! 下面的答案是正確的,但我追查到這條線的格式不正確的部分。

var videoHelpUrl = @(Url.Action("Index", "Help", new { Id = 46 })); 

回答

1

試試這個:

<script language="javascript" type="text/javascript"> 
    var videoHelpUrl = '@Url.Action("Index", "Help", new { Id = 46 })'; 
    console.log(videoHelpUrl); 
</script> 

的console.log將輸出的URL。

注意:請始終記住,剃刀視圖中@後的所有內容都將由Razor引擎處理。這就是爲什麼你可以使用引號圍繞@ Url.Action(...)。它將在執行時由Razor引擎首先處理,然後由Javascript處理。

+0

這是引號,絕對沒有注意到他們錯過了。 – Adam 2013-03-13 19:21:53

1

如果您嘗試使用雙{{}}中;

@{ 

    if (ViewData["showME"] != null && ViewData["showSuffix"] != null) 
    { 
     <text> 
     showME = @(Convert.ToBoolean(ViewData["showME"]) ? "true" : "false"); 
     showSuffix = '@Html.Raw(Json.Encode(ViewData["showSuffix "]))';   
     </text> 
    } 

} 

看看是否有效。

+0

這是正確的,我的問題是錯的。我的問題在於這條線..想法? var videoHelpUrl = @(Url.Action(「Index」,「Help」,new {Id = 46})); – Adam 2013-03-13 18:58:47

+0

然後給我一些票! :P :) – 2013-03-13 22:05:13