HTML5 <video> razor会自动将结束标记添加到<source />

时间:2017-11-24 12:42:37

标签: asp.net-mvc html5 razor umbraco

我的razor视图中有以下代码,它输出源标记:

@Html.Raw("<source src=\"" + @mediaItem.Url + "\" type=\"" + @mediaType +"\">")

根据多种文件格式的存在,它循环x次。 问题是返回的输出如下。

<video><source src="x.mp4" type="video/mp4"><source src="x.webm" type="video/webm"></source></source></video>

这给了我关于杂散结束标记的w3验证器错误 我不知道关闭标签的地点或时间或原因。

关于如何阻止它关闭标签的任何想法?

更多的代码,更新了源代码部分,不根据建议使用Html.Raw,但仍会产生相同的问题。

&#13;
&#13;
<video id="frontCoverVideo" width="1920" height="450" playsinline autoplay loop muted controls>
  @foreach (var mediaItem in coverMedia)
  {
    <source src="@mediaItem.Url" type="@mediaItem.Type">
  }
 </video>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

为什么在这种情况下使用Html.Raw?不建议以这种方式使用它。我没有看到任何理由。

假设视频源是ViewModel中的List<VideoSource>

<video>
@foreach(var source in Model.VideoSources)
{
    <source src="@source.Url" type="@source.MediaType" />
}
</video>

没有采用标准方式的原因?

更新:更改了代码,添加了自动关闭的源标记,以解决Umbraco内部的问题