Apache2 ASP MVC Razor 视图在为下拉菜单引用 PCL 枚举时崩溃

Apache2 ASP MVC Razor view crashes when referencing PCL enum for dropdown

我不熟悉在 ubuntu 上使用 ASP.net 和单声道,我有几个网站确实使用 MVC5 运行良好,尽管我最近迁移了一个项目并发现引用枚举的表单来自引用的 PCL 导致视图崩溃。下面是我的 EnumDropDownList 调用,它在 windows 主机上运行良好。

<div class="form-group">
@Html.LabelFor(m => m.Type, new { @class = "control-label" })
@Html.EnumDropDownListFor(m => m.Type, new { @class = "form-control" })
</div>

在 ubuntu 主机上的浏览器中查看此内容时出现以下错误

System.InvalidOperationException
The view found at '~/Views/portal/productgroup.cshtml' was not created.

额外的堆栈跟踪是

     at System.Web.Mvc.BuildManagerCompiledView.Render (System.Web.Mvc.ViewContext viewContext, System.IO.TextWriter writer) [0x00061] in <cc73190bab9d435c831510ff295c572a>:0 
  at System.Web.Mvc.ViewResultBase.ExecuteResult (System.Web.Mvc.ControllerContext context) [0x00080] in <cc73190bab9d435c831510ff295c572a>:0 
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult (System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x00000] in <cc73190bab9d435c831510ff295c572a>:0 
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Collections.Generic.IList`1[T] filters, System.Int32 filterIndex, System.Web.Mvc.ResultExecutingContext preContext, System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x0000b] in <cc73190bab9d435c831510ff295c572a>:0 
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive (System.Collections.Generic.IList`1[T] filters, System.Int32 filterIndex, System.Web.Mvc.ResultExecutingContext preContext, System.Web.Mvc.ControllerContext controllerContext, System.Web.Mvc.ActionResult actionResult) [0x0004f] in <cc73190bab9d435c831510ff295c572a>:0 

有没有一种方法需要在我的控制器或我的剃须刀视图中引用外部程序集?这是一个普遍的问题还是可能有什么特别的事情发生?

作为参考,PCL 包含一些共享代码,供我的网站和使用 Xamarin 构建的移动应用程序使用。 PCL 除了所有 Xamarin 等之外,还有配置文件 .NET framework 4.5。代码在 windows 上完全可操作,如果我删除对存储在 [=30 中的枚举的引用,它将工作=].

如有任何帮助,我们将不胜感激。

经过大量的研究和测试,我已经设法解决了我的问题,现在我将解释这个过程。

我在我的项目配置中切换到已编译的 MVCViews,并注意到由于在我的 web.config 中没有引用 System.Runtime,它们无法编译,我添加了这个引用,然后在测试时编译了我的视图这在本地它工作正常但在单声道上因同样的问题而失败。

接下来我开始怀疑 mono 是否有 System.Runtime 版本所以我从 nuget 安装了 System.Runtime 包,我注意到在构建我的项目时它没有添加到我的 bin 文件夹中并且即使 nuget 将其列为安装在 visual studio.

中,我的项目引用中也丢失了

最后我只是将 System.Runtime.dll 复制到我的远程 bin 文件夹中,这解决了我的问题。如果您依赖它,似乎 System.Runtime 需要出现在我们的任何 bun 文件夹中。(您可能会这样做!)

我希望这对某人有所帮助,因为我已经花了很多时间来寻求这方面的帮助!