单声道MVC5 - 视图不起作用

Sta*_*tan 14 c# asp.net-mvc mono xsp xsp4

我正在尝试使用Mono和XSP4在我的Linux机器上启动MVC5网站.它适用于没有视图但是当我尝试渲染某些东西时它会给我带来错误.

这是我的测试代码.请注意,我没有更改任何内容,这基本上是没有EF或任何其他库的空白站点.只是裸骨MVC5 +剃刀.

public ActionResult Index()
{
    // return Content("'sall good"); // works
    return View();
}
Run Code Online (Sandbox Code Playgroud)

System.InvalidOperationException

找不到Razor Host Factory类型:System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31BF3856AD364E35

描述:HTTP 500.Error处理请求.

详细信息:非Web异常.异常来源(应用程序或对象的名称):System.Web.WebPages.Razor.

堆栈跟踪

at System.Web.WebPages.Razor.WebRazorHostFactory.CreateFactory (System.String typeName) [0x00000] in <filename unknown>:0

at System.Collections.Concurrent.ConcurrentDictionary`2+<GetOrAdd>c__AnonStorey3[System.String,System.Func`1[System.Web.WebPages.Razor.WebRazorHostFactory]].<>m__0 () [0x00000] in <filename unknown>:0 

at (wrapper delegate-invoke) System.Func`1<System.Collections.Generic.KeyValuePair`2<string, System.Func`1<System.Web.WebPages.Razor.WebRazorHostFactory>>>:invoke_TResult__this__ ()

...
Run Code Online (Sandbox Code Playgroud)

我试图将Version = 5.0.0.0更改为4.0.0.0和3.0.0.0等但没有任何作用.我现在仍然得到同样的错误,大约是4.0.0.0.

有什么希望吗?

Sta*_*tan 24

问题在于Web.config内部/Views文件夹.system.web.webPages.razor host参数必须与MVC版本完全匹配.

例如,如果您有MVC 5.2.2.0,那么它应该是这样的<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />.

  • 谢谢你!就我而言,VSMac 将“Microsoft.AspNet.Mvc”包更新为“5.2.7”,但没有触及“Views/”文件夹下版本为“5.2.3”的“Web.config”文件。 (2认同)

Tad*_*dej 5

您的项目的MVC版本必须与MvcWebRazorHostFactory的版本匹配,并且必须相同。我必须将版本更改为5.2.3.0(在Views/Web.config文件中)。

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0
Run Code Online (Sandbox Code Playgroud)

如果您不知道项目中使用的是哪个版本的MVC,请转到“项目”->“编辑引用”->,然后在右侧的“选定的引用”下向下滚动到System.Web.Mvc应查看您正在使用哪个版本的MVC 。这就是我在Xamarin Studio社区中发现的方式。