我有一个存储在媒体库中的mp3文件。它在项目的媒体字段中引用。我可以通过在webforms或类中执行Sitecore.Resources.Media.MediaManager.GetMediaURL()来获取URL。但是我如何在MVC视图中实现这一目标呢?当我转储字段时,它只是呈现一个html标记。我只想拔出网址。
此外,是否有类似这样的参考?
由于
答案 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视频,从长远来看,它可以证明是有用的。
Martina很少blog articles他们是Sitecore MVC部件的好资源。
我希望这会有所帮助。
请问是否还有别的事。