2012-10-24 129 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> 

........ 希望这有助于