首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >独立组件中的ASP.NET核心MVC控制器

独立组件中的ASP.NET核心MVC控制器
EN

Stack Overflow用户
提问于 2016-06-09 20:23:52
回答 2查看 28.4K关注 0票数 42

我使用的是ASP.NET MVC Core RC-2。我有一个网络项目的目标是完整的.NET框架。我在解决方案中还有一个单独的类库,也是针对整个框架的。

在类库中,我有一个控制器,标有一个路由属性。我引用了web项目中的类库。此程序集引用nuget包Microsoft.AspNetCore.Mvc v. 1.0.0-rc2-final

据我所知,此外部控制器将被自动发现,例如http://www.strathweb.com/2015/04/asp-net-mvc-6-discovers-controllers/

然而,这对我不起作用-我浏览到路由的URL,得到一个空白页面,它没有命中我的控制器断点。

你有什么办法让它工作吗?

有趣的是,它似乎确实适用于以.NET核心框架为目标的web项目,引用了一个同样以.NET核心为目标的类库。但不适用于以完整框架为目标的web项目,引用标准的.NET类库。

注意:这是MVC Core,它应该在没有任何MVC<=4 routing overrides的情况下支持这种场景。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-10 04:24:40

我相信您在RC2中遇到了以下已知问题。https://github.com/aspnet/Mvc/issues/4674 (bug中提到了解决方法)

从那时起,这个问题已经修复了,但只会在下一个版本中可用(除非你可以使用夜间构建)

票数 7
EN

Stack Overflow用户

发布于 2016-07-08 02:17:51

在ASP.Net Core1.0中仍然是一个问题,不确定它是否是设计出来的。最简单的解决方案是在Startup.cs/ConfigureServices中执行此操作

代码语言:javascript
复制
services.AddMvc()
  .AddApplicationPart(typeof(<class in external assembly>).Assembly)
  .AddControllersAsServices();

AddApplicationPart在搜索控制器时显式包含程序集。对AddControllersAsServices()的调用会将所有发现的控制器添加到服务集合中,如果您在此行之后放置一个断点并检查“服务”,您将在集合中看到已找到的所有控制器类型。

您可能还想在这里检查:https://docs.asp.net/en/latest/migration/rc1-to-rtm.html#asp-net-5-mvc-compile-views,因为现在从RC1更改了控制器的发现规则。

另外,请记住使用IActionResult而不是ActionResult!

票数 75
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37725934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档