2012-05-12 57 views
7

我對Razor 2.0的condition attributes功能感興趣,所以我嘗試將Razor 2.0移植到我的MVC3應用程序中。我跟着this link併成功運行我的簡單應用程序(一個HomeController,一個Index動作和一個*〜/ Views/Home/Index.cshtml查看)上Windows與ASP.NET在單聲道下可以使用Razor 2.0查看引擎嗎?

但是當我部署我的應用程序在單聲道運行在Ubuntu上,它無法運行,並繼續報告的錯誤無法找到視圖:在「/」應用 視圖「

服務器錯誤索引'或其主人未找到或沒有視圖引擎支持搜索的位置。搜索了以下位置:〜/ Views/Home/Index.aspx〜/ Views/Home/Index.ascx〜/ Views/Shared/Index.aspx〜/ Views/Shared/Index.ascx〜/ Views/Home/Index。 CSHTML〜/瀏覽/首頁/ Index.vbhtml〜/查看/共享/ Index.cshtml〜/查看/共享/ Index.vbhtml

我用Google搜索這個錯誤,大部分文章說,這是一個問題查看編譯,所以我以爲是單引號無法正確使用新Razor引擎的編譯器編譯Index.cshtml

然後,我將應用程序切換回Razor 1.0,並且所有東西在單聲道下都能正常工作,那麼單聲道無法運行Razor 2.0是否真的存在問題?還是有任何快速解決這個問題?

感謝

+0

哪個版本的mono?您可以嘗試使用主幹,因爲它包含開放源代碼的官方ASP.NET代碼:http://tirania.org/blog/archive/2012/Mar-28.html –

+0

感謝您的建議,我目前使用安裝的單聲道2.10 Ubuntu的'apt-get'命令行,我可以看看trunk源碼。然而,razor2.0本身是ASP.NET的測試版本,我想知道是否可以在源代碼級別移植,無論如何,這是一個很好的改變,謝謝。 – otakustay

+0

好像它適用於單2.10.2+ 參見:http://stackoverflow.com/questions/4239645/does-the-razor-view-engine-work-for-mono –

回答

4

剃刀頁面使用Mono的工作,在理論上,與版本2.10.x系列,但你必須與它捆綁微軟的組件到你的Linux機器。

由於Mono 2.11.1,這些程序集現在默認捆綁在Mono中,因爲Microsoft最近開源Razor(在March 2012上)。

因此,如果我是你,我會嘗試單聲道2.11.3,看看問題是否已經固定在上游。如果沒有,請用http://bugzilla.xamarin.com/提供一個獨立的測試用例來重現它,並鏈接到這裏的錯誤。

+0

你有沒有經歷過[這](http://stackoverflow.com/questions/30497900/how-to-use-url-action-in-mono)種問題? – xameeramir