2013-02-08 54 views
4

我很疑惑为什么Visual Studio 2010会在我的源代码标记上给我出现以下验证错误。Visual Studio 2010中的HTML 5验证错误MVC 3

验证(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认为它是错误的,或者它真的不正确,如果是这样,为什么它不正确?

回答

1

我发现这个问题,它的Visual Studio 2010中的一个bug,展望虽然他们的文档,我发现这个链接 Web Standards Update for Visual Studio 2010 SP1

这是他们说这个问题是什么,以及更新应该修复它。

SP1中包含的HTML 5支持为许多新元素添加了intellisense和验证,例如视频和源元素。但是,有一些错误,其中一个是在视频元素中添加源元素时会看到的错误。这个更新正在解决这个问题,所以你现在也为源元素获得intellisense。

+0

看来安装并未解决问题。但它似乎确实是一个错误。 – Jeremiah 2013-02-09 00:57:17

0

其〜字符的字符串audioURL ..

从类似的问题上forums.asp.net

〜src属性中的字符不会在HTML标记reconginsed报价!

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

+1

我不确定在这里是这种情况。我不怀疑你对'〜'是正确的,但是使用Url.Content()将相对路径转换为绝对路径,所以实际上不会在html中呈现'〜'。 op的发布代码会呈现为' – 2013-02-08 19:42:24

+0

准确地说,呈现的行是“/Content/Audio/untitled.mp3” 〜。 – Jeremiah 2013-02-08 23:43:58

0

取下源src属性引号。这已经是一个字符串

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

如果我将它们排除在外,则需要使用引号,然后出现需要引号的不同验证错误。呈现的字符串也不会有引号。呈现的线条看起来与我在上面的注释中发布的内容完全相同。 – Jeremiah 2013-02-08 23:47:46