C# 不匹配任何可用视图
我试图通过发件人接收电子邮件时出错C# 不匹配任何可用视图,c#,asp.net,asp.net-mvc,asp.net-core-2.0,C#,Asp.net,Asp.net Mvc,Asp.net Core 2.0,我试图通过发件人接收电子邮件时出错 var htmlEmailText = await _viewRenderService.RenderToStringAsync( "Emails/ConfirmationEmailTemplate", emailModel); await _emailSender.SendEmailConfirmationAsync( model.Email, "Confirm your email", htmlEmailText); 它在本地运行得很好
var htmlEmailText = await _viewRenderService.RenderToStringAsync(
"Emails/ConfirmationEmailTemplate", emailModel);
await _emailSender.SendEmailConfirmationAsync(
model.Email, "Confirm your email", htmlEmailText);
它在本地运行得很好,但部署后,日志中出现错误:
参数名称:电子邮件/确认邮件模板与任何可用视图不匹配(8e09fd17)
System.ArgumentNullException:值不能为null。
参数名称:电子邮件/确认邮件模板与任何可用视图不匹配
有什么建议吗?您的视图很可能部署为预编译文件(而不是
schtml
视图文件)。要将它们作为视图文件发布,您需要在csproj
文件中禁用它们
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AssemblyName>MyWebProject.Namespace</AssemblyName>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
netcoreapp2.1
MyWebProject.Namespace
假的
首先,对我来说,本地系统和部署的版本之间的文件夹结构似乎有所不同,因此找不到模板。您是否已将视图部署到生产环境中?视图是否编译到您的应用程序中?您的RenderToStringAsync()
方法是什么?您是否尝试过添加扩展名-即“Emails/ConfirmationEmailTemplate.cshtml”
@stephenmueke应排除文件模板的文件扩展名-请参阅。最可能的原因是生产版本上的文件夹结构与本地版本不同。这似乎与此相关。您的建议+
有效!太好了,谢谢!!!