boo*_*ler 34 asp.net-core-mvc asp.net-core-1.0
我正在使用ASP.NET MVC Core RC-2.我有一个针对完整.NET框架的Web项目.我在解决方案中也有一个单独的类库,也是针对完整框架的.
在类库中,我有一个控制器,标有路由属性.我从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 Core Framework的Web项目,引用了一个同样面向.NET Core的类库.但不是针对完整框架的Web项目,引用标准的.NET类库.
注意:这是MVC Core,它应该支持这种情况,而不需要任何MVC <= 4路由覆盖.
Jam*_*nes 68
ASP.Net Core 1.0中仍然存在问题,现在还不确定它是否符合设计要求.最简单的解决方案是在Startup.cs/ConfigureServices中执行此操作
services.AddMvc()
.AddApplicationPart(typeof(<class in external assembly>).Assembly)
.AddControllersAsServices();
Run Code Online (Sandbox Code Playgroud)
AddApplicationPart显式包含搜索控制器的程序集.对AddControllersAsServices()的调用会将所有发现的控制器添加到服务集合中,如果在此行之后放置断点并检查"服务",您将在集合中看到已找到的所有控制器类型.
您可能还需要在此处查看:https://docs.asp.net/en/latest/migration/rc1-to-rtm.html#asp-net-5-mvc-compile-views,因为现在更改了发现规则适用于RC1的控制器.
还记得使用IActionResult而不是ActionResult!
我相信你在RC2中遇到了以下已知问题. https://github.com/aspnet/Mvc/issues/4674(错误中提到了解决方法)
从那时起,这已经修复,但只能在下一个版本中使用(除非你可以使用每晚构建)
| 归档时间: |
|
| 查看次数: |
24300 次 |
| 最近记录: |