在Sitecore MVC中查看媒体网址

问题描述 投票:3回答:3

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

另外,有这样的参考吗?

谢谢

asp.net-mvc url sitecore media
3个回答
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
投票

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

就像是 :

模型:

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>

问候


0
投票

在使用HtmlString时,在使用渲染之前,需要使用FieldRenderer解析Media或Field的Raw值。

虽然如果您可以提供更多代码,那么可以更准确地回答它,因为在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)

Martina很少有blog articles,他们是Sitecore MVC部件的好资源。

我希望这会有所帮助。

请问是否还有其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.