gpt4 book ai didi

c# - 在 asp.net core 上使用来自不同项目的另一个 Controller

转载 作者:行者123 更新时间:2023-12-04 15:55:27 25 4
gpt4 key购买 nike

我们试图重写旧项目以形成旧的 mvc 到 asp.net 核心 mvc。我们曾经附加另一个 mvc 项目作为引用,并且毫无问题地调用了 Controller 。但是在新的 asp.net 核心 MVC 上,它似乎需要另一种解决方法

enter image description here

所以 webapplication9 添加了 webapplication1 作为引用。并调用金丝雀,但它返回 404。它在旧的 mvc 上工作。

Controller 只返回纯内容

namespace WebApplication1.Controllers
{
public class CanaryController : Controller
{
public IActionResult Index()
{
return Content("Canary");
}
}
}

是否需要添加某些部分才能使 webapplication9 能够调用 webapplication1 Controller ?

在旧的 MVC 5 上,我们可以在 URL http://webapplication9/Canary 上调用它它有效。
在asp.net核心上它返回404或未找到

最佳答案

首先,您的其他项目不应该是 Web 应用程序,而是普通的 PCL。

其次,在你引用它之后,你需要告诉 ASP.NET Core 它应该在那里寻找 Controller 。出于这个原因,Application Parts Api 存在。

services.AddMvc()
.AddApplicationPart(typeof(CanaryController).GetTypeInfo().Assembly);

附言虽然文档说明它应该开箱即用,但在 Controller 上进行集成测试/单元测试时, .AddApplicationPart仍然需要,至少在 ASP.NET Core 2.0 中是这样

关于c# - 在 asp.net core 上使用来自不同项目的另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51890164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com