在Sitecore MVC中查看媒体网址

时间:2014-07-18 15:38:45

标签: asp.net-mvc url sitecore media

我有一个存储在媒体库中的mp3文件。它在项目的媒体字段中引用。我可以通过在webforms或类中执行Sitecore.Resources.Media.MediaManager.GetMediaURL()来获取URL。但是我如何在MVC视图中实现这一目标呢?当我转储字段时,它只是呈现一个html标记。我只想拔出网址。

此外,是否有类似这样的参考?

由于

3 个答案:

答案 0 :(得分:5)

您可以编写扩展方法来获取媒体项URL。这样的东西会起作用(你应该添加空引用检查btw):

public static string GetMediaUrl(this Sitecore.Mvc.Helpers.SitecoreHelper sitecoreHelper, string fieldName)
{
    return GetMediaUrl(sitecoreHelper, fieldName, sitecoreHelper.CurrentItem);
}

public static string GetMediaUrl(this Sitecore.Mvc.Helpers.SitecoreHelper sitecoreHelper, string fieldName, Item item)
{
    ImageField imageField = item.Fields[fieldName];
    return Sitecore.Resources.Media.MediaManager.GetMediaUrl(imageField.MediaItem);
}

在您的cshtml文件中,您可以使用:

<a href="@Html.Sitecore().GetMediaUrl("YourMediaField")">Click Here</a>

答案 1 :(得分:1)

你必须提供模型,然后从控制器发送回你的视图:

类似的东西:

型号:

public class c1
{

public string mediaUrl{ get {return Sitecore.Resources.Media.MediaManager.GetMediaURL();}

}

控制器:

ActionResult View1()
{
//prepare you View Values
return View(c1);
}

查看:

//the required field should look like this

<a href='@Html.Raw(Json.Encode(Model.mediaUrl))'> Link to File </a>

问候

答案 2 :(得分:0)

在使用HtmlString时,在使用渲染时,需要使用FieldRenderer解析媒体或字段的原始值。

虽然如果您可以提供更多代码,那么可以更准确地回答它,因为在Sitecore中有很多方法(Sitecore ORM和/或API),您可以使用它们来呈现项目字段。

另请参阅GitHub上的此Sitecore MVC project及以下列出的YouTube上的Sitecore MVC视频,从长远来看,它可以证明是有用的。

  1. Sitecore MVC - Getting Started (Part 1)
  2. Sitecore MVC -- View Renderings, @Html.Sitecore(), and Custom Models (Part 2)
  3. Martina很少blog articles他们是Sitecore MVC部件的好资源。

    我希望这会有所帮助。

    请问是否还有别的事。