@Scripts没有在cshtml头部@if分支中渲染,但是在没有条件逻辑的情况下渲染

时间:2017-06-16 15:46:55

标签: asp.net-mvc

我有一个布局文件,其中包含渲染包的所有脚本。然而,随着升级整个应用程序的进展,我们注入了一些条件逻辑,并且有问题的捆绑包停止加载。

在:

<head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0 maximum-scale=1.0">
   <title>@ViewBag.Title</title>
   <meta name="format-detection" content="telephone=no">

   @Scripts.Render("~/Bundles/corejs")

再次上述工作和捆绑加载。

测试:

<head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0 maximum-scale=1.0">
   <title>@ViewBag.Title</title>
   <meta name="format-detection" content="telephone=no">

   @Scripts.Render("~/Bundles/corejsv1")

以上也有效,所以看起来两个捆绑包都会生成。

失败:

<head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0 maximum-scale=1.0">
   <title>@ViewBag.Title</title>
   <meta name = "format-detection" content = "telephone=no">

    @if (Request.Cookies["abcd"] != null)
    {
        var appABCD = bool.Parse(Request.Cookies["abcd"].Value.ToString());

        if (appABCD)
        { Scripts.Render("~/Bundles/corejsV1"); }
        else
        { Scripts.Render("~/Bundles/corejs"); }
    }
    else
    {
        //default is cookie is null
        Scripts.Render("~/Bundles/corejs");
    }

以上无法加载包....为什么??

1 个答案:

答案 0 :(得分:0)

请在您的视图中尝试以下操作,使用@并且最后不要使用;

 if (appABCD)
 { 
    @Scripts.Render("~/Bundles/corejsV1") 
 }
 else
 { 
    @Scripts.Render("~/Bundles/corejs") 
 }