Hello Craig, I would recommend a few things first, let's see if we can get some more info on the error by adding the debug querystring to the URL ?umbdebugshowtrace=true
If you can post any details about errors/exceptions from that then we can try and figure out what is causing the issue.
Secondly ensure everything is all OK with the macro, by removing the logic you have and making a backup of it of course and putting something like Hello World inside it. That way if it loads we can now pinpoint its a problem with the logic rather than a problem loading that particular macro.
Didn't know there was a debug facility (or I'd forgotten!)
The part of the trace in red which appears to be an error is:-
umbracoMacroError Loading Razor Script (file: Get News Items List) 'string' does not contain a definition for 'umbracoFile' at CallSite.Target(Closure , CallSite , Object ) at ASP._Page_macroScripts_GetNewsItemsList_cshtml.Execute() in c:\Users\Craig\Documents\My Web Sites\GabeLeonard\macroScripts\GetNewsItemsList.cshtml:line 9
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 executors)
at System.Web.WebPages.WebPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at umbraco.MacroEngines.RazorMacroEngine.ExecuteRazor(MacroModel macro, INode currentPage)
at umbraco.MacroEngines.RazorMacroEngine.Execute(MacroModel macro, INode currentPage)0.009395199234140230.000190
'string' does not contain a definition for 'umbracoFile'
at umbraco.macro.renderMacro(Hashtable pageElements, Int32 pageId)0.009488393344417510.000058
Notiing the 'string' does not contain a definition for 'umbracoFile' I removed the call for var newsImage and the line outputting it to ImageGen and the script now loads:-
@{ var pagesToList =@Model.Children.Where("Visible"); foreach(var newsItem in pagesToList) { var newsCopy = newsItem.articleExcerpt; newsCopy =Library.StripHtml(newsCopy); newsCopy =Library.Truncate(newsCopy,200,true);
However, before changing to niceUrls the original code worked very nicely thankyou. So I suppose the question is then how to re-instigate the following lines so they work with nice URLs:-
var newsImage = newsItem.newsListImage.umbracoFile;
On a hunch I removed .umbracoFile, expecting to just see the image ID rendered, as it had before when I wrote the change to the macro. Now, it works!
As this is rather counter intuitive (to me at any rate) it would be good if someone could explain why just var newsImage = newsItem.newsListImage now ouputs a path instead of just an ID which it had before I instigated the niceURL changes.
Have friendly Urls stopped this Macro working?
Hi,
On a new 4.7.2 site I had this marcro working then switched the site to use friendly URL's iaw http://our.umbraco.org/wiki/install-and-setup/setting-up-umbraco-for-friendly-urls. Everything works fine except this newslisting Razor macro and I can't see why. Can anyone give me a clue?
TIA
Craig
what is it outputting? an error or only partial html?
It's outputting: Error loading MacroEngine script (file: NewsList.cshtml)
I did try to edit my post put the system croaked!
The macro is embedded with
<section class="main">
<h1><umbraco:Item field="contentTitle" runat="server" /></h1>
<umbraco:Macro Alias="NewsList" runat="server" />
</section >
(now for some reason there's not "code" formatting option!!)
I tried changing @newsItem.Url to @newsItem.NiceUrl but I think the problem's a bit more fundamental than that.
I tried undoing the changes detailed in our.umbraco.org/.../setting-up-umbraco-for-friendly-urls. expecting it all to continue working but it doesn't. I'm right in it now with a deadline to hit!!!! What has happened to this macro just by changing the umbracoUseDirectoryUrls param from falst to true and adding preCondition="" to the end of UrlRewriteModule? It appears I'm not the only one with this problem (http://our.umbraco.org/forum/core/general/26053-Error-loading-Macro-Engine-script-after-changing-umbracouseDirectoryUrls), no solution though:(
Hello Craig,
I would recommend a few things first, let's see if we can get some more info on the error by adding the debug querystring to the URL
?umbdebugshowtrace=true
If you can post any details about errors/exceptions from that then we can try and figure out what is causing the issue.
Secondly ensure everything is all OK with the macro, by removing the logic you have and making a backup of it of course and putting something like
Hello World inside it. That way if it loads we can now pinpoint its a problem with the logic rather than a problem loading that particular macro.
This will at least give us a starting point.
Cheers,
Warren
Hi Warren,
Didn't know there was a debug facility (or I'd forgotten!)
The part of the trace in red which appears to be an error is:-
umbracoMacroError Loading Razor Script (file: Get News Items List) 'string' does not contain a definition for 'umbracoFile' at CallSite.Target(Closure , CallSite , Object ) at ASP._Page_macroScripts_GetNewsItemsList_cshtml.Execute() in c:\Users\Craig\Documents\My Web Sites\GabeLeonard\macroScripts\GetNewsItemsList.cshtml:line 9
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
at System.Web.WebPages.WebPage.ExecutePageHierarchy(IEnumerable`1 executors)
at System.Web.WebPages.WebPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at umbraco.MacroEngines.RazorMacroEngine.ExecuteRazor(MacroModel macro, INode currentPage)
at umbraco.MacroEngines.RazorMacroEngine.Execute(MacroModel macro, INode currentPage)0.009395199234140230.000190
umbracoMacroLoading IMacroEngine script [done]0.009430373664867450.000035
umbracoMacroError loading MacroEngine script (file: GetNewsItemsList.cshtml, Type: ''
'string' does not contain a definition for 'umbracoFile'
at umbraco.macro.renderMacro(Hashtable pageElements, Int32 pageId)0.009488393344417510.000058
Notiing the 'string' does not contain a definition for 'umbracoFile' I removed the call for var newsImage and the line outputting it to ImageGen and the script now loads:-
(no code formatting available on replies btw!)
However, before changing to niceUrls the original code worked very nicely thankyou. So I suppose the question is then how to re-instigate the following lines so they work with nice URLs:-
<a href="@newsItem.Url"><img src="/ImageGen.ashx?image=@newsImage&AltImage=noimage-newslist.gif&width=200" alt="@newsItem.summaryHeadline"></a>
Craig
Hi Warren,
On a hunch I removed .umbracoFile, expecting to just see the image ID rendered, as it had before when I wrote the change to the macro. Now, it works!
As this is rather counter intuitive (to me at any rate) it would be good if someone could explain why just var newsImage = newsItem.newsListImage now ouputs a path instead of just an ID which it had before I instigated the niceURL changes.
Regards,
Craig
is working on a reply...