我有一个存储在媒体库中的mp3文件。它在项目的媒体字段中引用。我可以通过在webforms或类中执行Sitecore.Resources.Media.MediaManager.GetMediaURL()来获取URL。但是我如何在MVC视图中实现这一目标呢?当我转储字段时,它只是呈现一个html标记。我只想拔出网址。
另外,有这样的参考吗?
谢谢
您可以编写扩展方法来获取媒体项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>
你必须提供你从控制器发送回你的视图的模型:
就像是 :
模型:
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>
问候
在使用HtmlString
时,在使用渲染之前,需要使用FieldRenderer
解析Media或Field的Raw值。
虽然如果您可以提供更多代码,那么可以更准确地回答它,因为在Sitecore中有许多方法(Sitecore ORM和/或API),您可以使用它们来呈现项目字段。
另请参阅GitHub上的这个Sitecore MVC project以及YouTube上列出的Sitecore MVC视频,从长远来看它可以证明是有帮助的。
Martina很少有blog articles,他们是Sitecore MVC部件的好资源。
我希望这会有所帮助。
请问是否还有其他问题。