【发布时间】:2017-10-23 20:23:45
【问题描述】:
我在 csproj 文件中使用指向另一个 Asp Core 项目的 ProjectReference 来重用那里的模型。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<UserSecretsId>HIDDEN</UserSecretsId>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Project1\Project1.csproj" />
</ItemGroup>
...
</Project>
但这会导致第一个项目中的控制器操作在第二个项目中可用。好像configure方法中的app.UseMvc找到了第一个项目中的所有控制器。
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
另外,如果我在两个项目中使用相同名称的控制器,我会收到以下错误:
AmbiguousActionException:匹配多个动作。以下操作匹配路线数据并满足所有约束:
在引用第一个项目时,有什么方法可以阻止控制器操作吗?或者可能在 UseMvc 中有一些选项来阻止它?
【问题讨论】:
标签: c# asp.net-core asp.net-core-2.0