2021-04-26 乐帮网
c# netcore
ASP.Net Core 3.1的Web项目报错如下:An unhandled exception occurred while processing the request. MissingMethodException: Method not found: Microsoft.AspNetCore.Mvc.ContentResult Microsoft.AspNetCore.Mvc.ControllerBase.Content(System.String, Microsoft.Net.Http.Headers.MediaTypeHeaderValue)
看到这个提示当然知道是因为方法Microsoft.AspNetCore.Mvc.ControllerBase.Content没有找到相应的实现造成的。我当时是建的一个Razor类库,生成的依赖项可能 缺少。即使我已经引入了MVC相关的包仍然是相同的错误。最后的解决办法是把项目类型改为Web类型,详细过程如下:在Visual Studio中右键项目文件 选择“编辑项目文件”。
以前的项目文件
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
<RazorCompileOnPublish>true</RazorCompileOnPublish>
<RazorCompileOnBuild>true</RazorCompileOnBuild>
</PropertyGroup>
<ItemGroup>
<Content Include="wwwroot\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="wwwroot\**\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\dom.lib.core\dom.lib.core.csproj" />
<ProjectReference Include="..\dom.plugin.base\dom.plugin.ibase.csproj">
<Private>false</Private>
<ExcludeAssets>runtime</ExcludeAssets>
</ProjectReference>
</ItemGroup>
</Project>
改为:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
<RazorCompileOnPublish>true</RazorCompileOnPublish>
<RazorCompileOnBuild>true</RazorCompileOnBuild>
</PropertyGroup>
<ItemGroup>
<Content Include="wwwroot\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="wwwroot\**\*">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\dom.lib.core\dom.lib.core.csproj" />
<ProjectReference Include="..\dom.plugin.base\dom.plugin.ibase.csproj">
<Private>false</Private>
<ExcludeAssets>runtime</ExcludeAssets>
</ProjectReference>
</ItemGroup>
</Project>
主要修改项为:Project Sdk="Microsoft.NET.Sdk.Web"。这样在项目引用的Web Mvc相关的所有功能都能添加进去了,不然得全部手动引用,相互依赖关系处理很麻烦。在最终使用dotnet publish时提示缺少入口函数,只需要手动建一个空的就可以了。
public class Program
{
public static void Main(string[] args)
{;
}
}
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力