2013-02-08 58 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