我想使用单声道和XSP4我的Linux机器启动MVC5网站。它的工作原理没有意见。然而,当我尝试呈现的东西它给我的错误。
这是我的测试代码。请注意,我没有任何改变,这基本上是没有EF或任何其他库一个空白网站。只是裸骨MVC5 +剃刀。
public ActionResult Index()
{
// return Content("'sall good"); // works
return View();
}
System.InvalidOperationException
无法找到剃刀用母厂类型:System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,版本= 5.0.0.0,文化=中立,公钥= 31BF3856AD364E35
说明:HTTP 500.Error处理请求。
联系方式:非网上例外。例外原点(应用程序或对象的名称):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__ ()
...
我试着版本= 5.0.0.0改为4.0.0.0和3.0.0.0等,但没有任何工程。我仍然得到同样的错误刚才它是关于4.0.0.0。
究竟有没有前途?
这个问题在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" />
。
你的项目必须MvcWebRazorHostFactory的版本匹配的MVC版本,它必须是相同的。我不得不改变版本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
如果你不知道你正在使用你的项目,该项目的MVC的版本,然后去项目 - >编辑引用 - >然后在右侧,在“选定的引用”向下滚动到System.Web.Mvc
应该在哪里看到你是哪个版本使用。我这是怎么在Xamarin Studio的社区发现。
这一个是我的工作。我在浏览文件夹根据我的mvc版本改变web.config中的mvc版本5.2.3.0。例如。 <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
我改变了我的版本从5.2.0.0至5.2.3.0。
我收到了同样的错误,我更新了我的包就跑的代码之后。
错误信息:System.InvalidOperationException无法找到剃刀用母厂类型:System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,版本= 5.2.3.0,文化=中立,公钥= 31BF3856AD364E35
根据“意见”的文件夹更改System.Web.Mvc在Web.config文件的更新版本
system.web.webPages.razor
主办factoryType = “System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,版本= 5.2.7.0,文化=中性公钥= 31BF3856AD364E35”
我改变了我的版本System.Web.Mvc从5.2.3.0至5.2.7.0和代码执行。
这就像斯坦说。请检查您的System.Web.MVC
做你的参考文件夹“右击>属性”(在您的项目)的版本。然后,更新您的/views/web.config
该行。