2013-11-27 90 views
1
通電C#mvc4 .net4.5從Visual Studio

Web應用程序2012年單3.2.7 MVC5 C#麻煩

應用部署:Ubuntu服務器13.10。單聲道版本3.2.7(我建立從GIT) Web服務器的Apache/2.4.6是mod_mono 2.11(從GIT)

版本信息:3.2.7(主/ 5b65cb8週三11月27日14時49分11秒MSK 2013年); ASP.NET版本:4.0.30319.17020

該應用程序正在工作。但是當我嘗試去任何形式,應用程序失敗 ,出現以下錯誤^

應用程序異常 system.missingMethodException而沒有發現 方法:「System.Web.Routing.RouteCollection.get_AppendTrailingSlash」。

描述:HTTP 500.Error處理請求。

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

我該如何解決它?

+0

歡迎來到SO!請添加相關代碼以獲得更快更有用的回覆。 – Ani

+0

好吧我會嘗試添加 – avmaisak

+0

我不能添加代碼((有些是錯的,但是它是非標準的mvc代碼形式,我用了很多次,它是windows服務器和本地調試的工作人員 – avmaisak

回答

2

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

爲了避免將來出現這些問題,不要編譯應用程序並將二進制文件複製到Linux中,而應該嘗試在Linux中進行編譯。

PS:Mono's Compatibility page沒有列出MVC4爲100%完成,因此我建議降級到MVC3以使其在Linux中可以正常工作。 PS:如果你真的不能降級,你可能想要幫助MVC5兼容Mono的任務;如果你真的不能降級,它實際上比你想象的更接近真實,因爲有人添加了一個即將被審查的拉取請求:https://github.com/mono/mono/pull/888(如果你用這個拉取請求測試mono,並且它適用於你的MVC5網站,那麼我建議你在在拉動請求內部發表評論,這可能使事情向前移動一點)。

+0

謝謝你我會嘗試 – avmaisak

+0

當你使用'Html.BeginForm()'或者其他涉及到路由的東西的時候會引起這個問題@knocte,有什麼辦法可以解決這個問題嗎?以某種方式自己添加此功能? – sed

+0

是的,請提出請求 – knocte

0

而不是使用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>

當然,它並沒有解決的bug,但至少它可以得到ASP.NET MVC單上運行5項目。

感謝@teovankot指出了這一點。