"Ссылка на объект не установлена для объекта" при запуске с кассеты
Я пытаюсь начать с кассеты через NuGet. У меня проблемы с этим в моем приложении, поэтому я откатился и попробовал его в новом пустом веб-приложении ASP.NET MVC 3.
Однако проблема сохраняется. Следуя странице документации "Простота в использовании", я просто не могу заставить ее работать. Вот исключение и немного стека:
"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>
2 ответа
Я понял.
Я включил пакет Cassette.Views, который не создает по умолчанию CassetteConfiguration.cs
файл, который связывает каждый скрипт и каждый файл CSS в свой собственный комплект. Вот что вызвало исключение NullReferenceException. Чтобы заставить его работать, вам нужно вместо этого добавить пакет Cassette.Web. В мою защиту, описания пакетов в галерее NuGet не ясны, и один из них полагает, что пакет Views необходим для MVC, а другой - для WebForms.
Следующая проблема заключалась в том, что я ссылался на минимизированные скрипты ".min.js", которые не подобраны компоновщиком (кажется).
Невозможно воспроизвести проблему.
4 простых шага позволили мне получить полностью работающий прототип менее чем за 30 секунд:
- Создайте новый проект ASP.NET MVC 3 в Visual Studio
Install-Package Cassette.Web
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>
- Нажмите Ctrl+F5, чтобы запустить проект