这应该是令人尴尬的简单,但我不能让它工作:我只想在部分视图模板中显示上传到Umbraco媒体库(Umbraco 7.1.1)的图像.代码是
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var imgNode = CurrentPage.BannerBackgroundImage;
var imgUrl = umbraco.library.NiceUrl(imgNode);
<div id="banner-wrapper" style="background: url('@imgUrl') center center no-repeat;">
<!-- some irrelevant content -->
</div>
}
Run Code Online (Sandbox Code Playgroud)
其中BannerBackgroundImage是页面的自定义属性.但是,当显示时,@imgUrl将替换为#.
我尝试过的其他替代方案是多个Media Picker图像,如何显示Media Picker图像,使用Razor从媒体获取图像,以及从Media Picker显示图像,仅举几例.
如果有人可以帮我解决我认为的新手问题,我真的很感激!
当我运行项目时,Chrome中出现以下错误:

如何解决此问题并进入安装页面?
好吧,我对Umbraco/C#非常新,我想要做的是循环自定义媒体类型为我的应用程序的主页构建横幅,@bannerUrl总是返回images属性id而不是文件路径到资源.您将如何从Umbraco中创建的自定义媒体类型中检索图像文件路径.
请参阅代码示例:
var mediaFolder = Umbraco.Media(mediaFolderId);
var banners = mediaFolder.Children();
foreach (var banner in banners)
{
var bannerUrl = banner.image;
<div style="background-image:url(@bannerUrl);"></div>
}
Run Code Online (Sandbox Code Playgroud)
该变量bannerUrl始终返回默认的图像ID,而不是URL的文件路径.如何让文件路径正常工作?在VS中调试器中检查banner对象的内容时,我注意到Url属性有以下错误:
Url = 'banner.Url' threw an exception of type 'System.NotSupportedException'
Run Code Online (Sandbox Code Playgroud)
虽然我可以在.Url线上使用某些东西,但这似乎不起作用,所以任何建议如何使用Dynamic方式获取URL在Umbraco中的图像属性.
谢谢.
我是一名Web Forms开发人员,拥有一些.NET MVC经验,对Umbraco来说是新手,并且在我学习的过程中学习.
到目前为止,我一直在关注Umbraco文档和视频以进行设置,这意味着我的所有控制器都继承了包含常用功能的"Controller Base",它本身继承自SurfaceController.
最近,我注意到一些博主和外部参考资料引用了基类中的RenderMvcController而不是SurfaceController - 现在Umbraco文档还不清楚两者之间的真正差异,以及你应该使用它们的情况.
Surface控制器的想象使用场景(从Umbraco.Web.Mvc.SurfaceController继承)和自定义控制器(从Umbraco.Web.Mvc.RenderMvcController继承)之间是否有明显的区别?
谢谢!
我正在尝试在我的Umbraco设置中允许使用富文本编辑器输入中的javascript.我正在使用Umbraco 7.2.我在tinyMceConfig.config中启用了脚本标记,因此编辑器不再使用我的脚本标记.现在的问题是我的内容被切断了.
例如,在我的RTE中,我把:
<p>before</p>
<script>
alert('blam');
</script>
<p>after</p>
Run Code Online (Sandbox Code Playgroud)
这个由TinyMCE转换为:
<p>before</p>
<script>// <![CDATA[
alert('blam');
// ]]></script>
<p>after</p>
Run Code Online (Sandbox Code Playgroud)
问题是Umbraco.Field("myRte")的价值最终是:
<p>before</p>
<script>// <![CDATA[
alert('blam');
// ]]
Run Code Online (Sandbox Code Playgroud)
它似乎与CDATA有关.有没有其他人在Umbraco 7中使用RTE工作?
这是我第一次使用Umbraco,我使用错误的命名格式创建了文档类型/页面,现在这已经发生在我的页面URL中/about-page/.我将如何更改它们,/about因为我已经搜索了后端管理面板,似乎无法改变它们的link to document值.
有没有人能够使用umbracoUrlAlias或umbracoUrlName提供一个基于代码的简单示例,我最好如何在Razor中更改它.
谢谢
在示例代码中,这是从.cshtml文件获取主页的方式
var homePage = CurrentPage.AncestorsOrSelf(1).First();
Run Code Online (Sandbox Code Playgroud)
现在,如何通过ID获取特定页面/节点(与当前页面无关,例如新闻页面)?
Umbraco HttpContext.Current.Cache和ApplicationContext.ApplicationCache.RuntimeCacheUmbraco有什么不同?哪一个在效率方面更好用?
我用过Umbraco 7.4.x我的项目和ASP.NET MVC.在我的项目中,我有一个可以包含这么多项目的产品列表,因此我想使用缓存.具体来说,我想将我的数据放在缓存中,当一个新项添加到Products节点时,缓存会自动更新.我该如何实现它?
修改:请给我一个实现,详细说明我的代码.
Products.cshtml:
@using Jahan.Handicraft.Model.UModel.URenderModel
@using Jahan.Handicraft.Model.UModel
@inherits Umbraco.Web.Mvc.UmbracoViewPage<BaseRenderModel<Jahan.Handicraft.Model.UModel.Products>>
@foreach (var prod in Model.Model.ProductList.Skip((page - 1) * pageSize).Take(pageSize))
{
@*<div>LOAD DATA</div>*@
}
Run Code Online (Sandbox Code Playgroud)
ProductsController.cs:
namespace Jahan.Handicraft.Web.Mvc.UmbracoCms.App.Controllers
{
public class ProductsController : BaseRenderMvcController<Products>
{
// GET: Products
public override ActionResult Index(RenderModel model)
{
return base.Index(Instance);
}
}
}
Run Code Online (Sandbox Code Playgroud)
BaseRenderMvcController.cs:
public class BaseRenderMvcController<TBaseEntity> : RenderMvcController where TBaseEntity : BaseEntity
{
private BaseRenderModel<TBaseEntity> _instance;
public BaseRenderModel<TBaseEntity> Instance
{
get
{
if …Run Code Online (Sandbox Code Playgroud) 我们在Azure Web Apps上托管了一个Umbraco网站(版本7.5.11).
我们间歇性地经历以下异常(在过去3周内3次).一旦发生异常,它会将网站关闭,直到我们重新发布Umbraco中的主节点.在其他所有时间,网站都按预期工作,包括从服务器检索图像文件.
异常类型:IOException
异常消息:发生意外的网络错误.at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey,Func1 getCacheItem,Nullable1 timeout,Boolean isSliding,CacheItemPriority priority,CacheItemRemovedCallback removedCallback,CacheDependency依赖),位于Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey,Func1 getCacheItem,Nullable1 timeout,Boolean isSliding,CacheItemPriority priority,CacheItemRemovedCallback removedCallback,String [] dependentFiles)at Umbraco.Core.Cache.DeepCloneRuntimeCacheProvider.GetCacheItem(String cacheKey,Func1 getCacheItem,Nullable1 timeout,Boolean isSliding,CacheItemPriority priority,CacheItemRemovedCallback removedCallback,String [] dependentFiles) at Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetCacheValues(Int32 id,Func2 func)at Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetUmbracoMedia(Int32 id)at Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetById(UmbracoContext umbracoConte)xt,布尔预览,Int32 nodeId)Umbraco.Web.PublishedCache.ContextualPublishedCache1.GetById(布尔预览,Int32 contentId)在Umbraco.Web.PublishedContentQuery.DocumentById(Int32 id,ContextualPublishedCache缓存,Object ifNotFound)位于Umbraco.Web.PublishedContentQuery. Umbraco.Web.UmbracoHelper.Media(String id)的Media(Int32 id)
媒体文件存在,重新发布主节点使网站重新联机.
在异常时,没有部署代码更改,并且在Umbraco中没有更新/发布页面.
有没有人经历过类似的事情或任何想法的根本原因是什么?
快问.我正在寻找使用网站将网站部署到Azure.
我读了一条评论,声明文件系统是在网站的多个实例之间共享的?
我们将部署一个Umbraco 7站点,所以我仍然需要测试这可能对lucene索引等有什么问题.有没有人知道Umbraco 7和这种部署方法的任何并发症?
提前致谢
戈登
umbraco7 ×10
umbraco ×9
asp.net-mvc ×3
c# ×3
azure ×2
asp.net ×1
caching ×1
performance ×1
razor ×1
tinymce ×1