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" />.
您的项目的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社区中发现的方式。