如何让sitecore显示图像(或其他资源)

时间:2013-02-08 05:43:39

标签: c# .net sitecore sitecore6

我使用此guide安装了干净的Sitecore 6.6并启用了MVC支持。所以我的环境是Sitecore 6.6,ASP .NET MVC 3和Razor,Microsoft SQL Server Express 2012,IIS 7.5,我正在使用Microsoft Visual Studio 2012 Express for Web。我有以下代码:

@Model.PageItem.Fields["Title"];<br />
@Model.PageItem.Fields["Image"].GetValue(true, true);<br />
@Model.PageItem.Fields["Text"];<br />
Sitecore.Data.Items.MediaItem item = Model.PageItem.Fields["Image"].Item;
@Sitecore.StringUtil.EnsurePrefix('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl(item));<br />

结果很简单:

Sitecore
<image mediaid="{4DFD3ABC-0BC0-41D2-BD38-705946A1368A}" mediapath="/Images/xbox" src="~/media/4DFD3ABC0BC041D2BD38705946A1368A.ashx" />
<p>Welcome to Sitecore</p> 
/sitecore/shell/~/media/110D559FDEA542EA9C1C8A5DF7E70EF9.ashx

当我导航到最后一行中指定的路径时,我得到以下错误:

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

我尝试过几件事,例如:

  1. Web.config中的Media.UseItemPaths更改为trye(或false) - 没有任何作用......
  2. Web.config中的Media.RequestExtension设置为空(默认为ashx)
  3. 我已将ashx添加到Web.config中的允许扩展名中(因为如果我无法正常扩展,我至少希望有工作的ashx链接)
  4. 我已将ashx添加到IIS 7.5 - &gt;请求过滤 - &gt;文件扩展名
  5. 当然,在每次更改后(以防万一)我重新启动服务器并清除了浏览器的缓存(实际上,在几次请求后我已禁用了chrome的缓存)。

    我一直在寻找sdn.sitecore.net上的解决方案而没有运气。实际上我到目前为止花了3个多小时寻找解决方案,无法弄清楚出了什么问题......任何帮助或建议都值得赞赏!

1 个答案:

答案 0 :(得分:6)

Sitecore.Mvc.Helpers.SitecoreHelper类的Field方法将允许您输出Image字段。

以下是输出三个字段的视图渲染示例:

@using Sitecore.Mvc.Presentation
@using Sitecore.Mvc
@model RenderingModel

@Html.Sitecore().Field("Title")<br />
@Html.Sitecore().Field("Image")<br />
@Html.Sitecore().Field("Text")<br />

John West在Sitecore MVC上发表了大量博客,您可能希望查看他的About MVC Helpers with the Sitecore ASP.NET CMS帖子。