2012-03-27 71 views
0

我剛剛升級我的網站到ASP.NET MVC 4測試版,以利用真棒新的Web API功能,我的網站工作很好,除了一個頁面使用一個特定的EditorTemplate,我註釋掉每一行,它說有一個對象ref。在它上面的行錯誤,我有評論一切了這個文件除了變量聲明的真正說明這個問題的怪事:升級到ASP.NET MVC 4在EditorTemplate導致異常

enter image description here

難道這是在新的System.Web中的錯誤.Razor v2.0 .dll附帶MVC 4?在MVC 3下運行不變可以正常工作。不知道如何解決這個問題:■


更新: 確定後進一步調查,我有另外一個代碼塊我沒有註釋掉這是:

<div class="opt"><button class="[email protected](Html.Raw(ViewData["id"] != null ? " " + ViewData["id"] : null))">+</button> 
<button class="[email protected](Html.Raw(ViewData["id"] != null ? " " + ViewData["id"] : null))">-</button></div> 

這是創建一個程式化的微調按鈕,並在MVC 3中正常工作,只要我評論這一點,我的網頁加載正常,虛幻對象引用錯誤消失。我將進一步剖析這個罪魁禍首,看看新的MVC 4 Razor解析器可能會在哪裏死去。任何人有任何初步的想法?

+0

該html /剃鬚刀的特定片段沒有任何問題。它看起來好像是一個生成頁面的緩存問題。 (沒有被重新編譯/更新的頁面)但是沒有更多信息,將很難診斷這個特定問題。 – Buildstarted 2012-03-27 15:05:06

+0

謝謝,是的,我通過刪除導致它出於某種荒謬的原因的Html.Raw()來解決問題。這甚至在卸載所有其他ASP.NET MVC版本和全新安裝的MVC 4之後。奇怪! – GONeale 2012-03-28 04:23:48

回答

1

好吧,似乎從剃刀片段中刪除Html.Raw()固定此。

我認爲這是ASP.NET MVC 4的一個新bug,或者html標籤內部的Html.Raw()不再有效。希望MVC 4開發者注意到這篇文章,並可能解決它。

我不知道爲什麼我在那裏使用Html.Raw(),所以已經拿出來,現在都運行正常。 :)

+0

沒有這樣的錯誤。我在Razor 2.0的HTML標籤中使用了Html.Raw()。其他事情正在發生。你應該使用Html.AttributeEncode()。 – 2012-03-28 01:07:37

+0

不知道接下來發生了什麼,但我可以告訴你,我所做的全部都是從周圍的變量中刪除Html.Raw()。除非它是三元運算符和編碼的奇怪組合,我懷疑它。你是否像上面那樣在實際的標籤屬性中使用了Html.Raw()? – GONeale 2012-03-28 03:56:12

+0

我昨天第一次評論時使用了你的確切代碼,它工作正常。我嚴重懷疑這是'Html.Raw()'的問題。會更有幫助看到周圍的HTML,但你肯定有奇怪的問題:) – Buildstarted 2012-03-28 14:06:15