2012-03-26 72 views
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 

我只是遵循文檔中的兩個步驟,這就是我所得到的結果。我究竟做錯了什麼?

這是我的_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> 

回答

3

我想通了。

我包含了Cassette.Views包,它不會創建一個默認CassetteConfiguration.cs文件,它將每個腳本和每個css文件捆綁到它自己的包中。這就是觸發NullReferenceException的原因。爲了使它起作用,您需要添加Cassette.Web包。在我的辯護中,NuGet畫廊中的軟件包描述並不清晰,其中一個被認爲是MVC需要Views包,另一個是WebForms。

接下來的問題是我引用了未被捆綁器拾取的縮小'.min.js'腳本(它似乎)。

2

無法重現的問題。

4個簡單的步驟讓我在不到30秒獲得了一個有效的原型:

  1. 在Visual Studio
  2. Install-Package Cassette.Web
  3. Index.cshtml創建一個新的ASP.NET MVC 3項目:

    @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運行項目t
相關問題