将javascript与具有深度嵌套的c#代码混合使用.正在尝试制作外部文件

本文关键字:文件 外部 混合 javascript 深度 嵌套 代码 | 更新日期: 2023-09-27 18:29:06

我的一个视图中有一些javascript和c#代码,这些代码嵌套得很深。这里有一个大致的结构:

@if(something)
{
    <script type="text/javascript">
          @if(something_else)
          {  
                <text>
                    ...some javascript...
                    event: function(){
                       @ViewBag.Property = value;
                    }
                    ...some more javascript... 
                </text>
          }
          @else if(something_else_else)
          {
                 ...some more javascript...
          }
    <script>
}

它在html文件中运行良好,但我想把它放在一个外部js文件中,而只是像这样加载:

@if(something)
{
    <script type="text/javascript" src="@Url.Content("~Scripts/thescript.js")"></script>
}

然而,如果我尝试这样做,我会得到错误:missing } in XML expression

我试着把内容包装进去,但它仍然抱怨同样的错误。任何人都知道这是否可能,因为这是一个相当长的剧本,让我的观点非常复杂。

将javascript与具有深度嵌套的c#代码混合使用.正在尝试制作外部文件

您可以使用@Html.RazorJSInclude("scriptSource")。请参阅以下链接

http://djsolid.net/blog/razorjs---write-razor-inside-your-javascript-files

如果我理解正确,您将把包含Razor标记的代码放在一个外部.JS文件中。

Razor视图引擎不会解析.JS文件中的内容,因此它不会像您描述的那样工作。

但是,在视图中出现重复Razor标记的部分视图中,可以极大地清理代码。