簡體   English   中英

Mono 3.2.7 MVC5 C#故障

[英]Mono 3.2.7 MVC5 C# trouble

Web應用程序已從Visual Studio 2012啟動c#mvc4 .net4.5。

應用程序部署在:ubuntu服務器13.10。 單聲道版本3.2.7(我從git構建它)Web服務器Apache / 2.4.6 mod_mono 2.11(從git)

版本信息:3.2.7(master / 5b65cb8 Wed Nov 27 14:49:11 MSK 2013); ASP.NET版本:4.0.30319.17020

該應用程序正在運行。 但是當我嘗試使用任何形式時,應用程序都會失敗,並顯示以下錯誤^

應用程序異常System.MissingMethodException找不到方法:“ System.Web.Routing.RouteCollection.get_AppendTrailingSlash”。

說明:HTTP500。錯誤處理請求。

詳細信息:非Web異常。 異常來源(應用程序或對象的名稱):System.Web.Mvc。

我該如何解決呢?

這很可能意味着Mono中尚未實現屬性System.Web.Routing.RouteCollection.AppendTrailingSlash

為了避免將來出現這些問題,您不僅應嘗試編譯應用程序並將二進制文件復制到Linux,還應嘗試在Linux中進行編譯。

PS: Mono的“兼容性”頁面未列出MVC4已完成100%,因此,我建議降級到MVC3以使其在Linux上正常工作。

PS II:如果您確實無法降級,則可能需要幫助將MVC5兼容性引入Mono。 實際上,它比您想象的更接近真實,因為有人添加了一個請求請求,該請求將很快進行審查: https : //github.com/mono/mono/pull/888 (如果您使用此請求請求測試mono,適用於您的MVC5網站,我建議您在pull請求中的注釋中這樣說,這可能會使處理過程更快一些)。

代替使用ASP.NET MVC幫助器,我們可以使用如下基本HTML語法:

對於類似錨的組件:

 <a href="~/ControllerName/ActionName"> Test </a> 

對於類似表單的組件:

  <form action="~/ControllerName/ActionName"> <br> <input type="text" placeholder="Enter name"/> <br> <input type="submit" value="Submit"/> </form> 

當然,它不能解決錯誤,但至少可以使Mono.NET上運行ASP.NET MVC 5項目。

感謝@teovankot指出這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM