4

我很困惑为什么 Visual Studio 2010 在我的源标记上给我以下验证错误。

验证 (HTML5):元素“源”不能嵌套在元素“音频”中

下面是我在 cshtml 视图中的代码:

@{
    ViewBag.Title = "Audio";
    string audioURL = Url.Content("~/Content/Audio/untitled.mp3");
}

<div>
  <audio id ="myAudio" controls preload="auto">  
      <source src="@audioURL" type="audio/mpeg" />   
  </audio> 
</div>

我一直在环顾四周,我看到标签中对多个 src 属性的引用很多。但这并不能回答我的问题,为什么会出现验证错误?是真的正确,但是VS2010认为错误,还是真的不正确,如果是,为什么不正确?

4

3 回答 3

1

我发现了这个问题,它是 Visual Studio 2010 中的一个错误,查看他们的文档我发现了这个链接 Web Standards Update for Visual Studio 2010 SP1

这就是他们所说的问题,更新应该可以解决它。

SP1 中包含的 HTML 5 支持为许多新元素(如视频和源元素)添加了智能感知和验证。但是,存在错误,其中之一是您在视频元素中添加源元素时会看到的错误。此更新已修复此问题,因此您现在还可以获得源元素的智能感知。

于 2013-02-09T00:04:36.367 回答
0

它是 audioURL 字符串中的 ~ 字符..

引用forums.asp.net上的类似问题

src 属性中的 ~ 字符不会在 HTML 标记中被识别!

除非它是服务器控件,否则您不能使用 tilder 标记转到根级别。使用 .. 转到上层目录等等。这就是您应该如何定义 HTML 控件的相对路径。例如:src="../Mp3/RonaldReaganChallengerAddress.mp3"

于 2013-02-08T19:09:35.713 回答
0

从源 src 属性中删除引号。它已经是一个字符串

 <audio id ="myAudio" controls preload="auto">  
      <source src = @audioURL type="audio/mpeg" />   
  </audio> 
于 2013-02-08T19:43:52.897 回答