1

NuGet 経由でCassetteを使い始めようとしています。アプリで問題が発生したため、ロールバックして、新しい空の ASP.NET MVC 3 Web アプリケーションで試しました。

ただし、問題は解決しません。ドキュメントページの「使いやすい」に続いて、私はそれを動作させることができません。例外とスタックの一部を次に示します。

"Object reference not set to an instance of an object."

[NullReferenceException: Object reference not set to an instance of an object.]
   Cassette.CassetteApplicationContainer.get_Application() +6
   Cassette.Views.Bundles.Reference(String assetPathOrBundlePathOrUrl, String pageLocation) +14
   ASP._Page_Views_Shared__Layout_cshtml.Execute() in d:\Dave\Documents\Visual Studio 2010\Projects\CasetteTest\Views\Shared\_Layout.cshtml:2
   System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +207

ドキュメントの 2 つの手順に従っただけで、これが得られます。私は何を間違っていますか?

これは私の_Layout.cshtmlファイルがどのように見えるかです:

@{
    Bundles.Reference("Scripts/jquery-1.5.1.min.js");
    Bundles.Reference("Scripts/modernizr-1.7.min.js");    
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>

<body>
    @RenderBody()
    @Bundles.RenderScripts();
</body>
</html>
4

2 に答える 2

3

私はそれを考え出した。

CassetteConfiguration.cs各スクリプトと各 css ファイルを独自のバンドルにバンドルするデフォルト ファイルを作成しない Cassette.Views パッケージを含めました。それが NullReferenceException の原因です。動作させるには、代わりに Cassette.Web パッケージを追加する必要があります。私の弁護では、NuGet ギャラリーのパッケージの説明は明確ではなく、一方は Views パッケージが MVC に必要であり、もう一方は WebForms に必要であると信じ込まされています。

次の問題は、縮小された '.min.js' スクリプトを参照したことでした。これはバンドラーによって検出されません (どうやら)。

于 2012-03-26T18:57:45.080 に答える
2

問題を再現できません。

4 つの簡単な手順で、完全に機能するプロトタイプを 30 秒以内に作成できました。

  1. Visual Studio で新しい ASP.NET MVC 3 プロジェクトを作成する
  2. Install-Package Cassette.Web
  3. Index.cshtml:

    @using Cassette.Web
    @{
        Bundles.Reference("~/Scripts/jquery-1.5.1.js");
        Bundles.Reference("~/Scripts/jquery-ui-1.8.11.js");
        Bundles.Reference("~/Content/site.css");
        Layout = null;
    }
    <!DOCTYPE html>
    <html>
    <head>
        <title>Web App</title>
        @Bundles.RenderStylesheets()
    </head>
    <body>
        <div>Hello World</div>
        @Bundles.RenderScripts()
    </body>
    </html>
    
  4. ヒットCtrl+F5してプロジェクトを実行する
于 2012-03-26T18:11:39.750 に答える