2012-10-24 103 views
1

對於javascript評論,我通常會嘗試遵循類似於these指南。然而,剃刀引擎似乎扔了,當它看到這樣的東西在cshtml文件:javascript razor mvc3

/** 
* This is my function. 
* @param parm1 this is first parameter 
* @param parm2 this is second parameter 
*/ 

@符號似乎導致分析器錯誤,因爲這是在剃刀一個特殊字符。無論如何,我只是想知道其他人在做什麼。我知道我大概可以使用剃刀評論和做這樣的事情:

@*param parm1 this is first parameter *@ 

但是,只是在這麼多的水平上感覺不對。

+0

這豈不是更好地保持你的Javascript從你的剃鬚刀完全分開? – JConstantine

+0

我寧願將它保留在cshtml中,因爲它是視圖代碼的一部分。對於跨頁面共享的JavaScript代碼,我將它分解爲一個通用文件。但對於特定於頁面的JavaScript代碼,我喜歡將它保留在頁面本身。無論如何,這只是我的哲學,並不是說它是對還是錯。 – dcp

+1

@param絕對會試圖將其解析爲一個尚未定義的變量。你可以修改你的文檔來使用轉義的@。像:@@ param parm1 – tgormtx

回答

3

試試這個:

/* 
* This is my function. 
* @@param parm1 this is first parameter 
* @@param parm2 this is second parameter 
*/ 

要寫入@你只需要重複@@在Razor視圖。

+1

我不喜歡這樣做,但它似乎是最好的解決方案。感謝您的答覆。 – dcp

0

對於JavaScript風格/ *評論* /的評論在腳本部分。即< script>/* comment */</script>,評論樣式/ * comment * /在剃鬚刀下無效。在HTML代碼處使用 ,您可以使用<! - 評論 - >,剃刀代碼下,你可以使用@ *註釋* @

下面是一個例子: ....剃刀文件 ..... 其他 { 沒有結果。 }

@* razor comment *@ 


<!-- html comment --> 
<p> 

    @if (ViewData["parent"] != null && !HasRole(Site.Enti)) 
    { 

     // another type of comment with Razor 

     if (theParent.Parent == null) 
     { 
      @Html.ActionLink("Up One Level", "index", "") 
     } 
     else 
     { 

      @* another valid razor comment *@ 
      @Html.ActionLink(
        "Up One Level", 
        "index", 
        new { controller = "", id = theParent.Parent.SchoolGroupId }) 
     } 
    } 

    <script> 
     /* 
      javascript comment 
     */ 
    </script> 

........ 希望這有助於