2010-12-07 50 views
6

我正在將項目從MVC 2遷移到MVC3和剃鬚刀視圖引擎。Razor View Syntax無法識別HTML屬性中的「@」

在MVC 2,我有以下的html:

<div id="del_<%= Model.ActivityID.ToString() %>"></div> 

當使用剃刀,我嘗試以下,這使得文字文本「[email protected]()」時,我想del_1。

<div id="[email protected]()"></div> 

爲了解決這個問題,我用:

<div id="@Model.ActivityID.ToString()_del"></div> 

有沒有去使剃鬚刀工作,這句法?

<div id="[email protected]()"></div> 

回答

11

你將不得不使用@()圍繞您的特定模式值,像這樣:

<div id="[email protected](Model.ActivityID.ToString())"></div> 

的原因是因爲[email protected]看起來像解析器的電子郵件地址,默認情況下解析器試圖忽略電子郵件地址,因此您不必做一些傻事因爲電子郵件很常見,所以每次都會很煩人。所以在剃刀分析器上工作的人們只是想:「如果它看起來像一封電子郵件,就忽略它」。所以這就是爲什麼你有這個特殊問題。